基于Javascript的多页PDF水平滚动?
我想知道如何使用 JavaScript 实现 PDF 页面的水平滚动。是否更好:
- 将 PDF 页面转换为 HTML 文件,然后在 src="...each page.html" 的 iframe 之间单击左右?
- 将 PDF 页面转换为除 iframe 之外的其他 HTML 元素(例如 DIV?),然后在包含每个页面内容的元素之间单击左右。
我想确保 PDF 的文本是可搜索的,所以我不想将其页面变成图像。我还对使用 iframe 持怀疑态度,因为在单个网页中使用多个 iframe 会带来格式方面的挑战。在使用基于 Linux 的“PDFtoHTML”软件将 PDF 转换为 HTML 后,我已经测试了这种方法,并发现通常这是一个次优的解决方案。
看起来选项 2 是可行的方法,但不知道如何以编程方式将 PDF 解析为多个 DIV。除了 JavaScript 之外,我还熟悉 PHP 和 Linux,但不熟悉其他语言,如果这有助于思考解决方案的话。
I'm wondering how I can accomplish horizontal scrolling of the pages of a PDF using JavaScript. Is it better to:
- Convert the pages of the PDF into HTML files and then click left-right between iframes where src="...each page.html"?
- Convert the pages of the PDF into some other HTML element besides iframe (e.g., DIV?) and then click left-right between elements containing the contents of each page.
I'd like to ensure that the PDF's text is searchable so I don't want to make its pages into images. I'm also skeptical of using iframes because of the formatting challenges of having multiple iframes in a single webpage. I've already tested this approach after converting the PDF to HTML using "PDFtoHTML" linux-based software and find that in general this is a suboptimal solution.
It seems like option 2 is the way to go but wouldn't know how to programmatically parse a PDF into multiple DIVs. Besides JavaScript, I'm familiar with PHP and Linux but not other languages if that would be helpful in thinking of solutions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PDF 插件会拦截鼠标事件,因此无法直接从浏览器/JavaScript 控制它。
你的另一种方法,转换为html,是可行的。
PDF plugin intercepts mouse events so there is no way to control it directly from the browser / JavaScript.
Your other method, converting to html, is feasible.
将 PDF 页面转换为 HTML 文件或多或少与“将其解析为
”完全相同。如果您已经找到了一个可以为您完成此操作的工具(“PDFtoHTML”),只需使用该工具,并删除除其输出的 .html 的
内的内容之外的所有内容。
Converting a PDF page to a HTML file is more or less the exact same thing as "parsing it into a
<div>
". If you already found a tool that can do it for you ("PDFtoHTML"), just use that, and strip away everything except what's inside the<body>
of the .html it outputs.