javascript - PDF.JS PDF 渲染不正确,出现镜像和颠倒

标签 javascript pdf pdf.js

我正在尝试让 pdf.js 在 IE 中工作。我几乎完全从 pdf.js 站点上的“使用 base64 编码的 PDF 的 Hello World”示例中复制代码,地址为 https://mozilla.github.io/pdf.js/examples/。 . PDF 倒置并镜像。我环顾四周,一个常见的原因是重复使用 Canvas 进行多次渲染,但我没有这样做,我只是渲染一次,所以我真的不知道。

在我的 html 文档的顶部,我有:

$html .= '<canvas width="600px" height="2000px" id="the-canvas"></canvas>';

然后我基本上像这样从演示中完全复制了 JS(encodedString 变量是我的 pdf base64 字符串)

        var pdfData = atob(encodedString);

        // Loaded via <script> tag, create shortcut to access PDF.js exports.
        var pdfjsLib = window['pdfjs-dist/build/pdf'];

        // The workerSrc property shall be specified.
        pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';

        // Using DocumentInitParameters object to load binary data.
        var loadingTask = pdfjsLib.getDocument({data: pdfData});
        loadingTask.promise.then(function(pdf) {
            console.log('PDF loaded');

            // Fetch the first page
            var pageNumber = 1;
            pdf.getPage(pageNumber).then(function(page) {

                console.log('Page loaded');

                var scale = 1.5;
                var viewport = page.getViewport({scale: scale});

                // Prepare canvas using PDF page dimensions
                var canvas = document.getElementById('the-canvas');
                var context = canvas.getContext('2d');
                //canvas.height = viewport.height;
                //canvas.width = viewport.width;

                // Render PDF page into canvas context
                var renderContext = {
                    canvasContext: context,
                    viewport: viewport
                };

                var renderTask = page.render(renderContext);
                renderTask.promise.then(function () {
                    console.log('Page rendered');
                });

            });
        }, function (reason) {
            // PDF loading error
            console.error(reason);
        });

我真正改变的唯一一件事是我注释掉了几行基于视口(viewport)设置 Canvas 宽度和高度的行,因为它不起作用它总是折叠的,所以我指定了 Canvas html 内联的宽度和高度。

我似乎无法在这种新的堆栈溢出设计中包含图像,但 pdf 正在呈现并出现,但它是颠倒的,文本是镜像的,就像你在镜子里看文本一样。

如果有人能给我建议,我将不胜感激。谢谢

最佳答案

将{scale: scale}改为缩放。它需要一个数字而不是一个对象。示例文档是错误的。

关于javascript - PDF.JS PDF 渲染不正确,出现镜像和颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121521/

相关文章:

javascript - PDF.js 不会重定向到位于 Firefox 中启用 CORS 的另一台服务器上的 pdf 文件

javascript - 如果鼠标移动得更快时条件没有执行

c# - 有没有办法在网页上获取并显示正在运行的服务器进程的状态?

javascript - 理解 javascript 中的位运算

wpf - 使用 PDFsharp 或 iTextsharp 将 XPS 转换为 PDF

javascript - wkwebview:找出在 web View 中加载的内容是否为 PDF 并给出下载按钮

javascript - Pdf.js : How to load file + view -- An error occurred while loading the PDF. 更多信息关闭(搜索 "normal"示例)

javascript - 吊装和可变范围

python - 有人能够在 python 中使用 poppler new_from_data 吗?

javascript - 是否有支持文本选择的简约 PDF.js 示例?