标签: pdf-rendering

PDF.js无法在IE中正确呈现pdf

我正在使用PDF.js框架来呈现PDF.我正在使用base64数据来呈现PDF.但在IE 11 pdf看起来模糊.

从IE 11中查看以下屏幕

在此输入图像描述

见下面的代码:

var renderPDF = function(url, canvasContainer,data) {
        var scale= 0.9;  //"zoom" factor for the PDF

        function renderPage(page) {
            var canvas = document.createElement('canvas');
            var viewport = page.getViewport(scale);

            var ctx = canvas.getContext('2d');
            var renderContext = {
                canvasContext: ctx,
                viewport: viewport
            };

            canvas.height = viewport.height;
            canvas.width = viewport.width;

            canvasContainer.appendChild(canvas);

            page.render(renderContext);
        }

        function renderPages(pdfDoc) {
            for(var num = 1; num <= pdfDoc.numPages; num++)
                pdfDoc.getPage(num).then(renderPage);
        }

        PDFJS.disableWorker = false;

        var pdfAsDataUri = "data:application/pdf;base64,"+data; // shortened
        var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
        PDFJS.getDocument(pdfAsArray).then(renderPages); …
Run Code Online (Sandbox Code Playgroud)

javascript canvas pdf-parsing pdf-rendering pdf.js

11
推荐指数
1
解决办法
6296
查看次数

使用python3显示PDF文件

我想写一个显示PDF文件的python3/PyGTK3应用程序,我无法找到允许我这样做的python包.
pypoppler,但它看起来过时(?)并且似乎不支持python3(?)

你有什么建议吗?

编辑:注意,我不需要花哨的功能,如PDF格式,操纵或写作.

pygtk pdf-reader pygobject python-3.x pdf-rendering

10
推荐指数
1
解决办法
5381
查看次数

html-pdf npm库在windows和ubuntu上提供不同的输出

我正在使用https://www.npmjs.com/package/html-pdf库,该库基于Phantom JS,内部使用webkit.我正在粘贴虚拟HTML和JS代码(将这些文件保存在1个文件夹中)并附加输出屏幕截图.

我面临的问题是在Windows上生成的PDF顶部有一些额外的空间(红色以上的空白区域),我无法摆脱它.

这是一个讨论类似问题的论坛(过时),https://groups.google.com/forum/#!topic /phantomjs/YQIyxLWhmr0.

input.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
</head>

<body>
    <div id="pageHeader" style="border-style: solid;border-width: 2px;color:red;">
        header   <br/> header       <br/> header   <br/> header
    </div>
<div id="pageContent" style="border-style: solid;border-width: 2px;color:green;">
    <div>
        body    <br/> body    <br/> body
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS (你需要路径,fs,把手,html-pdf npm包)

var path = require('path');
var fs = require('fs');
var handlebars = require('handlebars');
var pdf = require('html-pdf');

saveHtml();

function saveHtml() {

fs.readFile('input.html', 'utf-8', {
    flag: …
Run Code Online (Sandbox Code Playgroud)

webkit node.js pdfrenderer pdf-rendering phantomjs

9
推荐指数
1
解决办法
3242
查看次数

CGContextDrawPDFPage内存泄漏 - 应用程序崩溃

当我用Instruments分析我的应用程序时,我发现分配的数据CGContextDrawPDFPage不会立即释放.应用程序因为崩溃而崩溃CGContextDrawPDFPage.

在此输入图像描述

在此输入图像描述

你好,这是我在CATiledlayer中绘制pdf的代码

      - (void)drawLayer:(CATiledLayer *)layer inContext:(CGContextRef)context
    {
    if (_PDFPageRef == nil) {
        return;
    }
    CGPDFPageRef drawPDFPageRef = NULL;
    CGPDFDocumentRef drawPDFDocRef = NULL;

    @synchronized(self) // Briefly block main thread
    {
        drawPDFDocRef = CGPDFDocumentRetain(_PDFDocRef);
        if( _PDFPageRef != (__bridge CGPDFPageRef)([NSNull null]) )
            drawPDFPageRef = CGPDFPageRetain(_PDFPageRef);
        else
            return;
    }

    //CGContextSetRGBFillColor(context, 0.0f, 0.0f, 0.0f, 0.0f);
    //CGContextFillRect(context, CGContextGetClipBoundingBox(context));

    if (drawPDFPageRef != NULL) // Render the page into the context
    {
        CGFloat boundsHeight = viewBounds.size.height;

        if (CGPDFPageGetRotationAngle(drawPDFPageRef) == 0)
        {
            CGFloat boundsWidth = …
Run Code Online (Sandbox Code Playgroud)

iphone xcode pdfrenderer ios pdf-rendering

9
推荐指数
1
解决办法
853
查看次数

如何显示已在python中下载的pdf

例如,我从网上抓了一个pdf

import requests
pdf = requests.get("http://www.scala-lang.org/docu/files/ScalaByExample.pdf")
Run Code Online (Sandbox Code Playgroud)

我想修改此代码以显示它

from gi.repository import Poppler, Gtk

def draw(widget, surface):
    page.render(surface)

document = Poppler.Document.new_from_file("file:///home/me/some.pdf", None)
page = document.get_page(0)

window = Gtk.Window(title="Hello World")
window.connect("delete-event", Gtk.main_quit)
window.connect("draw", draw)
window.set_app_paintable(True)

window.show_all()
Gtk.main()
Run Code Online (Sandbox Code Playgroud)

如何修改该document =行以使用包含pdf的变量pdf?

(我不介意使用popplerqt4或其他任何东西,如果这使它更容易.)

python pdf poppler pdf-rendering

8
推荐指数
2
解决办法
5527
查看次数

如何使用pdf.js库呈现整个pdf文档?

我尝试使用pdf.js库渲染PDF文档.我只知道javascript中的基础知识并且我是承诺的新手,所以首先我按照这个页面上的建议:使用pdf.js和ImageData(2.answer)将.pdf渲染到单个Canvas.
但结果是,我将所有页面都空白的文档呈现.所有的图片和颜色都很好,但甚至不是一行文字.我也尝试过其他一些教程,但要么得到相同的结果,要么文档完全丢失.现在,我的代码看起来像这样:(它与教程几乎完全相同)

function loadPDFJS(pid, pageUrl){

    PDFJS.disableWorker = true;
    PDFJS.workerSrc = 'pdfjs/build/pdf.worker.js';

    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d');
    var pages = [];
    var currentPage = 1;

    var url = '/search/nimg/IMG_FULL/' + pid + '#page=1';

    PDFJS.getDocument(url).then(function (pdf) {

        if(currentPage <= pdf.numPages) getPage();

        function getPage() {
            pdf.getPage(currentPage).then(function(page){
                var scale = 1.5;
                var viewport = page.getViewport(scale);

                canvas.height = viewport.height;
                canvas.width = viewport.width;

                var renderContext = {
                    canvasContext: ctx,
                    viewport: viewport
                };

                page.render(renderContext).then(function() {
                    pages.push(canvas.toDataURL());
                    if(currentPage < pdf.numPages) { …
Run Code Online (Sandbox Code Playgroud)

javascript pdfview pdf-rendering pdf.js

7
推荐指数
2
解决办法
1万
查看次数

使用 Flying Saucer PDF 渲染将格式错误的 HTML 转换为 PDF

在GitHub项目中,我尝试将任意 HTML 字符串转换为 PDF 版本。我所说的转换是指解析 HTML,并将其呈现为 PDF 文件。

为了实现这一点,我使用Flying Saucer PDF Rendering,如下所示:

主程序.java

public class Main {

    public static void main(String [] args) {
        final String ok = "<valid html here>: see github rep for real html markup here";
        final String html = "<invalid html here>: see github rep for real html markup here";
        try {
            // final byte[] bytes = generatePDFFrom(ok); // works!
            final byte[] bytes = generatePDFFrom(html); // does NOT work :(
            try(FileOutputStream fos = …
Run Code Online (Sandbox Code Playgroud)

html java pdf flying-saucer pdf-rendering

6
推荐指数
1
解决办法
6087
查看次数

Android PdfRenderer 抛出 IOException

我的应用程序列出了 PDF 文件,当用户选择一个 PDF 时,应用程序会打开它。如果用户选择损坏的 PDF 文件,PdfRenderer 将抛出IOException(这很好,因为我捕获了该异常并通知用户该文件已损坏)。

但问题是,在发生这种情况后,IOException用户尝试打开的所有 PDF 文件都会被抛出(即使对于未损坏的文件)

相关代码

File file = new File(filePath);
mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
if (mFileDescriptor != null) {
     mPdfRenderer = new PdfRenderer(mFileDescriptor);
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪

openRenderer: java.io.IOException: file not in PDF format or corrupted
    at android.graphics.pdf.PdfRenderer.nativeCreate(Native Method)
    at android.graphics.pdf.PdfRenderer.<init>(PdfRenderer.java:166)
    at ****.****.****.PdfUtil.openRenderer(PdfUtil.java:63)
    at ****.****.****.PdfUtil.getMaxPages(PdfUtil.java:46)
    at ****.****.****.PdfViewActivity.init(PdfViewActivity.java:166)
    at ****.****.****.ui.PdfViewActivity.onCreate(PdfViewActivity.java:58)
    at android.app.Activity.performCreate(Activity.java:7023)
    at android.app.Activity.performCreate(Activity.java:7014)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2870)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1601)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:172)
    at android.app.ActivityThread.main(ActivityThread.java:6590) …
Run Code Online (Sandbox Code Playgroud)

pdf android ioexception pdfrenderer pdf-rendering

5
推荐指数
0
解决办法
760
查看次数

pdf.js无法使用Safari

我们正在测试pdf.js,虽然它看起来像一个很棒的项目,但我们无法在Safari中使用它.

(测试PDF.JS版本= 0.8.229(最新)/ Safari 5.1.9 - 6.0.4/Mac OSX 10.6.8 - 10.8.3)

例:

这是我们服务器提供的演示代码示例,其中包含可在Chrome/FFox上运行的示例PDF,但不适用于Safari:http://test.appgrinders.com/pdf_js/test.html

控制台输出:

Warning: Setting up fake worker. 
Error: Invalid XRef stream (while reading XRef): 
Error: Invalid XRef stream pdf.js:850undefined 
Warning: Indexing all PDF objects 
Error: Invalid XRef stream (while reading XRef): 
Error: Invalid XRef stream pdf.js:850undefined
Run Code Online (Sandbox Code Playgroud)

更多测试:

以下是我们测试的示例PDF列表(它们全部来自我们的服务器,并且都在Chrome/FFox/Android中运行).唯一适用于Safari的是pdf.js项目本身提供的PDF文件:

在SAFARI失败:
http ://samplepdf.com/sample.pdf
http://forums.adobe.com/servlet/JiveServlet/previewBody/2041-102-1-2139/Sample.pdf
https://github.com/ prawnpdf /虾/原始/主/数据/ PDF文件/ form.pdf

SAFARI的工作:
http
://cdn.mozilla.net/pdfjs/helloworld.pdf(注意:这是来自pdf.js项目的示例PDF,也是我们唯一一个工作过的PDF)


我们已经提交了一份错误报告,但开发人员似乎没有答案,所以我希望有人在这里......

我们怎样才能让pdf.js与Safari一起工作?

javascript safari pdf-rendering pdf.js

4
推荐指数
1
解决办法
2万
查看次数