2

我希望为我拥有的一组 PDF 文件添加一定程度的交互性,并希望将 PDF 文档嵌入网页中,然后覆盖触摸目标,以便我可以在它们上弹出一个弹出窗口。

实现这一目标的最佳方法是什么?我简要地研究了 Mozilla 的pdf.js,但那更专注于成为一个完整的 PDF 阅读器,并且在平板电脑上表现不佳。

是否有任何可靠的 PDF 到 HTML 库/转换器可以帮助我?PDF是相当基本的。或多或少只是网格中的一堆图像(可在 PDF 中单独选择)。

目前我正在 Photoshop 中打开 PDF,将其切片,然后将其导出为 HTML 表格,但我希望做一些更容易做的事情

4

3 回答 3

7

我看不到解决服务器端解决方案的方法。下面是我在 PHP 中使用 ImageMagick 的方法:

<?php
$someFile = $_GET['pdf'];
try
{
    // Saving every page of a PDF separately as a JPG thumbnail
    $images = new Imagick($someFile);
    foreach($images as $i=>$image) {
        $desiredWidth = 1024;
        $image->thumbnailImage($desiredWidth,0);
        // Save the file to disk
        //$image->writeImage("page".$i.".jpg");
        // Or display it from this script:
        header('Content-Type: image/jpg');
        echo $image;
    }
    $images->clear();
}
catch(Exception $e)
{
    echo $e->getMessage();
}
?>

如果您的 PDF 是单页,那么该脚本只会创建一个文件,或者如果您回显 $image,那么它只会将该页面显示为 JPG(或 PNG 或任何您想要的)。然后,您可以通过将脚本包含为 IMG 来根据需要在其周围标记 HTML:

<img src="myscript.php?pdf=somefile.pdf"/>

现在,您可以在 PDF 上和周围使用任何您想要的 HTML 作为图像。

于 2012-11-22T18:29:01.917 回答
1

几年前,我实现了一个名为 PDFWebViewer.NET 的商业解决方案来在浏览器中查看 PDF。它使用服务器端图像渲染 (.NET),只使用 HTML 和 javascript 客户端。

我认为这与在没有任何插件的情况下在浏览器中查看 PDF 一样接近。由于它都是 HTML,因此您可以使用 div 覆盖页面并使用 javascript 将操作连接到该页面。事实上,这就是产品在 PDF 文档中呈现链接的方式。

这非常有效,因为通过使用相对定位,您可以确保在平移文档时链接保持在正确的位置。

该项目最近是开源的,但仍然依赖于商业组件。用开源 PDF 组件替换它应该不是很多工作。

该项目托管在 codeplex 上。PDFWebViewer 1是第一代,WebViewer 2是最新版本。

于 2012-11-27T14:16:42.350 回答
0

我建议您使用wkhtmltopdf。它允许您通过拍摄“屏幕快照”(简单解释)来处理任何动态转换为 pdf 格式的 Web 内容。例如,您可以像在任何网站上一样编写自己的 html 模板,然后用自定义数据填充它。您可以使用它生成例如发票。我现在使用它几个月了,没有任何问题。

它使用 webkit 渲染引擎和 qt 将 html 转换为 pdf 的简单 shell 实用程序。当然它的开源!

例子:

wkhtmltopdf www.myhomepage.com myhomepage.pdf
于 2012-11-22T12:29:24.740 回答