嵌入 PDF 内容的问题

Problems in Embed PDF content

当文件较小时,此方法非常有效。一旦文件变大(> 1 MB)。无法再显示 PDF。

<embed src="@PDFContent" style="width: 100%;height: 930px;border: none;" frameborder="0" />
PDFContent = "data:application/pdf;base64," + Convert.ToBase64String(File.ReadAllBytes(@"Server:\Temp\test.pdf"));

文件在服务器上,不在 IISS 上。 可能是什么问题

尝试使用 <iframe> 而不是 <embed>。 此外,将您的 base64 数据转换回二进制,打包在 Blob 中,然后将您的 iframe 的 src 设置为指向该 Blob 的 blob-URI -

const blob = base64ToBlob( base64, 'application/pdf' );
const url = URL.createObjectURL( blob );
const pdfWindow = window.open("");
pdfWindow.document.write("<iframe width='100%' height='100%' src='" + url + "'></iframe>");

function base64ToBlob( base64, type = "application/octet-stream" ) {
  const binStr = atob( base64 );
  const len = binStr.length;
  const arr = new Uint8Array(len);
  for (let i = 0; i < len; i++) {
    arr[ i ] = binStr.charCodeAt( i );
  }
  return new Blob( [ arr ], { type: type } );
}

如果此方法不起作用,请尝试让您的 <iframe> 直接指向 PDF 的 URL。

希望这个解决方案对您有用。