问题标签 [pdfobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 使用 PDFObject 下载具有动态文件名的 pdf
我正在尝试将 PDFObject用于我的小册子,我想要用户选择车辆并下载她/他选择的特定车辆。这是我的代码:
这是我的工作javascript:
我想将此传递$('form').attr('action', '../../vehicles/' + value +'/');
给 PDFObject,以便它查找正确的文件名来下载文件。
c# - 如何使用 /ASCIIHexDecode 解码图像
我正在尝试使用 iTextSharp 从 PDF 文件中提取图像。
该过程适用于我拥有的大多数 PDF 文件,但其他一些文件失败。
特别是,我观察到失败的 PDF 具有带有过滤器/ASCIIHexDecode
和/CCITTFaxDecode
.
如何使用此过滤器解码图像?
仅供参考,我的图像提取例程是(pg
对象正在使用PdfReader.GetPageN
):
确切的例外是:
仅供参考:这是一个导致麻烦的示例 PDF:test.pdf
itext - 编辑 pdf 文件的来源,它损坏了 pdf(无法打开)
从文本编辑器打开一个 PDF 文件,我想在下面修改这个对象的内容:
759 0 obj
($Revision:: 1.0 $)
endobj
774 0 obj
从
($Revision:: 1.0 $)
到($Revision::20171219200322$)
,即对象的总大小增加了 2 个字符。
但是,此更改会破坏 PDF。
这是怎么发生的?我猜PDF中还有其他地方依赖于obj的大小。
有人可以解释一下吗?
非常感激
===================更新==================
感谢以下评论。
我试图在整个 pdf 文件中查找外部参照表,但只找到了如下内容:
...
endobj
startxref
116666
%%EOF
在文件的底部。那里没有实际的桌子。任何想法?
谢谢您的帮助。
===================更新 22/12/2017 ==================
现在我能够找到需要使用 iText 修改的 AcroFields。但是,我不想使用AcroFields.setField(String name, String value)
方法来设置字段值,我想修改PdfString
该字段所引用的对象的值。我可以通过调用PdfReader.getPdfObject(item.getMerged(0).get(PdfName.DV))
它来获取对象,它给了我一个 PdfString 对象,但我找不到改变它的值的方法。任何想法?
javascript - 使用 pdfobject 将 pdf 置于模态引导程序中 - 递增文件
我正在尝试在模态引导程序中显示 pdf。我在我的应用程序中使用数据表,我的表头由文档标题、类别、日期和文档视图组成。在“查看文档”列的正文中,我有一个按钮,当用户单击该模式时,会打开一个模式,并且在其中也会打开 pdf。
我表中的每一行都有一个不同的 pdf 文档,这是我的问题,我无法将引用每一行的 pdf 放在其各自的模态中。在任何行上打开的 pdf 始终是我表中添加的最后一个文档。
在该应用程序中,我使用的是 firebase,pdfobject 插件为模态添加 pdf 和引导程序。
我的代码如下:
Javascript:
HTML:
javascript - 如何跳转到呈现的pdf页面
我使用 pdfobject 和 forcePDFJS,它使用 pdfjs viewer.js 来呈现 pdf。一旦它们被呈现,我需要能够在不重新加载文档的情况下跳转到页面。文档可能非常大
我已经看到一些关于使用 PDFApplicationViewer.pdfview.currentPageNumber 的提及。但我还没有看到如何正确使用它的好例子
我见过两个使用 PDFApplicationViewer 的例子 1. PDFApplicationViewer.pdfview.currentPageNumber = pagNum; 2. document.getElementById('mycanvas').contentWindow.PDFApplicationViewer.pdfview.currentPageNumber = pagNum;
尽管第二个更有意义我不确定元素中的 contentWindow 对象来自哪里。我假设 pdfobject 嵌入了一些我也可以访问但我无法弄清楚的东西..
另外,因为我真的找不到很多关于这个..这甚至可能吗..
出于时间限制的原因,我不想使用 pdfjs 组合一个新的查看器。我喜欢 viewer.html 附带的内容。我只需要跳转页面而无需重新加载
javascript - 如何在浏览器内置 PDF 查看器中为 base64 pdf 自定义文件名
我正在从 base64 字符串嵌入 PDF,如下所示:
这适用于 Firefox 和 Chrome。
我的问题是我无法自定义 pdf 下载操作的文件名。请注意,我使用的是filename
参数 ( 'data:application/pdf;filename=MY_CUSTOM_FILENAME.pdf;...
),但它被忽略了。
在 Firefox 上,我收到此警告(相关代码在此处):
“getPDFFileNameFromURL:出于性能原因,忽略“数据:”URL。”
并且 pdf 的文件名是默认的document.pdf
.
在 Chrome 上,我没有收到任何警告,但文件名坚持默认的download.pdf
.
那么,如何自定义文件名呢?那可能吗?
我尝试了这些方法,但没有成功:
检查了 PDFObject,这是一个库,基本上完成了我在这篇文章中所做的工作(在写这篇文章时发现了它!),但它们似乎不允许对文件名进行任何自定义。
我试图在一个 pdf 上加载 pdf
<iframe>
,然后操作它的内容。但我得到(至少在 Firefox 中)一个跨域错误似乎 Mozilla 的 PDF 查看器 ( PDF.js ) 也会检查
Content-Disposition
标题以猜测 pdf 的文件名。是否有可能以某种方式模拟 HTTP 请求(总是在浏览器中本地,因为我使用 base64 字符串)并使用它来加载 pdf 查看器?
我知道解决方案可以直接使用PDF.js,但如果可能的话,我希望避免这种依赖(以及编码,因为实现它并不那么简单)。最后,我只想自定义文件名!
谢谢!
编辑:下面的代码片段在 Chrome 上不起作用(无法将 'data:application/pdf;filename=MY_CUSTOM_FILENAME.pdf;base64,....' 作为插件加载,因为加载插件的框架是沙盒的.),但如果您打开一个计划 .html 文件,它就可以工作。
编辑 2:我找到了一个解决方案,但它只适用于 Firefox。
我们将我们的base64
字符串转换为 aBlob
解释here,将其转换Blob
为Url 并添加一个filename
参数到这个url(使用'#'解释here)。
所以,loadPdf()
函数是这样的:
从 Firefox 的 Pdf 查看器下载时,我们将成功看到 MY_CUSTOM_FILENAME.pdf。
但在 Chrome 上,我们会看到 Blob url 的哈希值。和:
- 似乎不可能改变那个哈希
- 即使我使用
<iframe>
(而不是<object>
)来加载我的内联 pdf,Chrome 也会使用<embed>
. 所以,没有办法“破解”它。
从这个角度来看还有什么其他提示吗?
javascript - JS插件避免从pdf复制
我正在寻找一个 JS 插件,它可以让我展示 1. Web 浏览器中的 PDF 文档 2.(最重要)该 PDF 中的文本不得被其他人复制
我尝试使用允许我将 PDF 文档嵌入到我的 HTML 文档中的 PDFObject 这是一个代码
在 acrobat sdk 中不存在此“allowcopy”参数(用于打开文档的参数)中,我正在寻找这样一种用例/参数,该用例/参数被认为是错误的,并且有人无法复制我的内容。
javascript - 使用输入类型文件的 PDFObject
我可以使用此代码从服务器加载 pdf 文件
但我要做的是加载从imgPreview
输入文件类型附加的pdf文件
javascript - 如何在工具栏中隐藏/不显示 PDF 标题
有什么方法可以访问我使用 pdfobject.js 嵌入的 PDF 文件的元数据?我想替换/更改它的标题,因为它不对应于它的文件名。示例是下面的片段。文件名是“D1000SPN.pdf”,与显示的标题不同。我试图搜索但没有找到。但是,因为我找不到解决方案。我决定不再在其工具栏上显示 PDF 标题或将其隐藏。我是新手,所以请与我裸露。