文件PDF未在iframe中显示,带有javascript dataUri文档,querySelector

eqoofvh9  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(184)

我有一个项目,显示pdf文件数据在iframe与dataUri,但它没有显示。请帮助我
文件索引. php

<iframe src="" id="iframe" ></iframe>
<input required type="text" name="Name" id="name" minlength="3" maxlength="16">

<script src="https://unpkg.com/pdf-lib@1.4.0"></script>
<script src="https://unpkg.com/@pdf-lib/fontkit@0.0.4"></script>
<script src="./index.js"></script>

enter image description here
我的项目有什么问题?

bt1cpqcv

bt1cpqcv1#

请提供格式化文本的代码片段,而不是屏幕截图,这将有助于人们更快地回答您的问题。
我怀疑在PDF生成过程中可能会出现问题,根据PDF-LIB(https://pdf-lib.js.org)示例文档,您应该用途:

const { PDFDocument, StandardFonts, rgb } = PDFLib

与此同时,不同的浏览器和Web服务器可能对PDF文件的iframe嵌入和base64编码有不同的策略。
以下代码片段在Firefox上适用:

<html>
    <head>
        <script src="https://unpkg.com/pdf-lib@1.4.0"></script>
        <script src="https://unpkg.com/@pdf-lib/fontkit@0.0.4"></script>
    </head>
    <body>
        <iframe src="" id="iframe" ></iframe>
    <script src="./pdf.js"> </script>
  </body>
</html>

pdf.js

const { PDFDocument, StandardFonts, rgb } = PDFLib
async function generatePdf() {
    // Create a new PDFDocument
    const pdfDoc = await PDFDocument.create()
    // Embed the Times Roman font
    const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)
    // Add a blank page to the document
    const page = pdfDoc.addPage()
    // Get the width and height of the page
    const { width, height } = page.getSize()
    // Draw a string of text toward the top of the page
    const fontSize = 30
    page.drawText('Creating PDFs in JavaScript is awesome!', {
        x: 50,
        y: height - 4 * fontSize, 
        size: fontSize,
        font: timesRomanFont,
        color: rgb(0, 0.53, 0.71), })
        // Serialize the PDFDocument to bytes (a Uint8Array)
        const pdfBytes = await pdfDoc.save()
        const Uri = await pdfDoc.saveAsBase64({ dataUri: true });
        document.querySelector("#iframe").src = Uri;
    }
generatePdf();

相关问题