我从未在pdf中添加javascript动作.但是,我已经使用javascript做了很多web开发.对于熟悉PDF中的javascript的人,我有几个问题.
NitroPDF和Adobe Acrobat肯定支持PDF格式的javascript. 是否有存在的各种对象的标准和通过javascript操作pdf的功能? 到目前为止我发现的一切都来自Adobe.其他任何地方似乎都参考了Adobe的文档.那里有标准,还是Adobe只是"de Facto"标准?
此外,所有PDF查看器都支持JavaScript操作吗?
在我可以找到的pdf文档中使用javascript的最佳文档来自Adobe - Adobe :: Acrobat Javascript脚本指南.
NitroPDF有这个链接 - 在PDF文件中的NitroPDF :: Javascript,但它基本上只是说它支持Adobe所拥有的.
我还从Scribus发现了这个链接 - Scribus ::如何使用JavaScript增强PDF表单,但这只包括一小段代码.没有什么超级有用的.
Adobe有关于如何使用IDE为javascript设置断点等的文档.是否可以使用另一个IDE在pdf中运行javascript并有断点等...?找到像Firebug一样酷的东西真是太棒了.
请不要回答如何操作Web浏览器中加载的PDF.问题是关于从PDF文档中运行javascript.我正试图通过在PDF文档中执行javascript来探索可用的可能性.具体来说,我可以使用quickpdflibrary中的函数将javascript功能添加到现有文档中.
另一个有用的链接是使用Acrobat Javascript进行开发.显然,PDF格式的js经常被称为AcroJS或Acrobat JavaScript.
我正在尝试将此PDF转换为灰度:https://dl.dropboxusercontent.com/u/10351891/page-27.pdf
Ghostscript(v 9.10)与pdfwrite设备失败,"无法将色彩空间转换为灰色,将策略还原为LeaveColorUnchanged".信息.
我能够通过中间ps文件(使用gs,pdftops(v 0.24.3)或pdf2ps)转换它,但这个转换光栅化整个PDF.我尝试了很多其他的东西:使用qpdf(v 5.0.1)或pdftk(v 1.44)规范化PDF,将其转换为svg文件并通过Inkscape(v 0.48.4)转换回PDF ...似乎没什么上班.
我找到的唯一一个解决方案(在生产环境中不适合我)是在我的Mac上使用预览并手动或使用Automator脚本应用Quartz Gray Tone滤镜.
有人找到另一种工作方式吗?或者是否可以规范化PDF或修复问题以防止Ghostscript消息"无法转换颜色空间..."或以另一种方式强制颜色空间?
谢谢!
我一直在尝试在Elixir或Erlang中找到示例功能,以获取可填写的PDF,然后使用来自应用程序的输入数据填充它.
到目前为止,我无法在Elixir或Erlang中找到任何解决方案.
有没有人知道我们可以用来实现这个目标的好方法或模块?
提前致谢!
我正在尝试使用PDFMiner python绑定从大量PDF中提取文本.我写的模块适用于许多PDF,但是对于一部分PDF,我得到了一些有些神秘的错误:
ipython堆栈跟踪:
/usr/lib/python2.7/dist-packages/pdfminer/pdfparser.pyc in set_parser(self, parser)
331 break
332 else:
--> 333 raise PDFSyntaxError('No /Root object! - Is this really a PDF?')
334 if self.catalog.get('Type') is not LITERAL_CATALOG:
335 if STRICT:
PDFSyntaxError: No /Root object! - Is this really a PDF?
Run Code Online (Sandbox Code Playgroud)
当然,我立即检查这些PDF是否已损坏,但它们可以被正确读取.
尽管没有根对象,有没有办法阅读这些PDF?我不太确定从哪里开始.
非常感谢!
编辑:
我尝试使用PyPDF试图获得一些差异诊断.堆栈跟踪如下:
In [50]: pdf = pyPdf.PdfFileReader(file(fail, "rb"))
---------------------------------------------------------------------------
PdfReadError Traceback (most recent call last)
/home/louist/Desktop/pdfs/indir/<ipython-input-50-b7171105c81f> in <module>()
----> 1 pdf = pyPdf.PdfFileReader(file(fail, "rb"))
/usr/lib/pymodules/python2.7/pyPdf/pdf.pyc in __init__(self, stream)
372 self.flattenedPages = None
373 self.resolvedObjects = …Run Code Online (Sandbox Code Playgroud) 重复我如何合并 PDF 文件(如果不可能,则合并 PS),以便每个文件都以奇数页开头?
我有一系列文件,每个文件都有不可预测的页数。
说 :
我想将这些输入文件合并成一个 out.pdf,我将双面打印。输入文件的每个第一页都必须在前(右)页上。
这意味着预期的结果将是
|A1
--|B1
B2|B3
--|C1
C2|C3
C4|
Run Code Online (Sandbox Code Playgroud)
“--”是一个空白页。
目前,我正在使用 pdftk cat。
似乎有一个通过大量脚本编写的解决方案,使用:
# Get number of pages
pdftk x.pdf dump_data | grep "NumberOfPages"
# If the number of pages is odd, add a blank page to x.pdf
# Loop
# Cat the whole
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更简单优雅的解决方案?
例如,是否可以在每个文件的开头添加分页符?
提前致谢
我想使用 ImageMagick 将 pdf 文件转换为黑白 PDF 文件。但是我有两个问题:我使用这个命令:
convert -colorspace Gray D:\in.pdf D:\out.pdf
Run Code Online (Sandbox Code Playgroud)
-density 300选项,文件大小增加了一倍多。所以我想使用相同的DPI设置,但如何使用?非常感谢
我的代码有一些问题。我正在尝试遍历包含许多 PDF 的 Drive 文件夹,然后将它们合并为一个文件。当我使用我的代码时,它只是为 Drive 文件夹中的最后一个 PDF 创建一个 PDF,而不是按预期将它们全部合并在一起。
function MergeFiles(){
var folder = DocsList.getFolderById('myFolderID');
var files = folder.getFiles();
var blobs = [];
for( var i in files )
blobs.push(files[i].getBlob().getBytes());
Logger.log(blobs.push(files[i].getBlob().getBytes()));
var myPDF = Utilities.newBlob(blobs.pop(), "application/pdf", "newPDF.pdf");
folder.createFile(myPDF);
}
Run Code Online (Sandbox Code Playgroud) 获取或计算pdf中(Td,TD,Tm,cm,T *)内容流的确切位置?
作为人类,我能够通过比较来计算(无论是替换最后一个 Td 还是添加到最后一个 Td 或乘以 fontsize)标签在 pdf 内容流中的位置,其中字形位于 pdf 和内容流位置值中。但我无法以编程方式计算字形的完美位置。请看短屏。
在上图中,左侧框是 pdf ui 字形,右侧框包含相关内容流。在内容流中,我突出显示了两个 Td 位置。
在第一圈
3.321 -6.475999832 Td
Td 位置应添加到最后的 Td 位置。假设 x1,y1。
Current_x_pos = x1+3.321
当前_y_pos = y1-6.475999832
然后我们可以得到字形“t”的确切位置。
在第二个突出显示的圆圈中,新的 Td 位置 (231.544 366.377990 Td) 被完全替换,如
Current_x_pos = 231.544
当前_y_pos = 366.377990
除此之外,有时父标签是 Tm 在这种情况下,公式可能是这样的
Current_x_pos = x1+(tdx1*font_size)
当前_y_pos = y1+(tdy1*font_size)
当我们需要像上面那样乘法时,有时需要加法。以编程方式我怎么知道这一点。解析确切的位置?(为乘法添加了新的屏幕短片)
我有一个基本的pdf文件,想使用ghostscript和pdfmark将标题更新为中文(UTF-8),命令如下
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=result.pdf base.pdf pdfmarks
Run Code Online (Sandbox Code Playgroud)
和 pdfmarks 文件(编码是UTF-8 没有 BOM)在下面
[ /Title (????)
/Author (Larry Cai)
/Producer (xdvipdfmx (0.7.8))
/DOCINFO pdfmark
Run Code Online (Sandbox Code Playgroud)
该命令已成功执行,而当我检查 result.pdf
标题改为 æ?‘擷引å‘
请给我提示如何解决这个问题,gs命令或pdfmark中有任何参数吗?
我想将元数据键值对添加到pdf文件的元数据中.
我找到了几年的答案,但我认为这是复杂的方法.我想今天有一种更简单的方法:https://stackoverflow.com/a/3257340/633961
我没有和pypdf2结婚,如果有更简单的方法,那我就这样走吧?
pdf-manipulation ×10
pdf ×8
ghostscript ×2
python ×2
acrobat ×1
elixir ×1
encoding ×1
erlang ×1
grayscale ×1
imagemagick ×1
javascript ×1
page-break ×1
pdf-parsing ×1
pdfbox ×1
pdftk ×1
pypdf ×1
pypdf2 ×1
tagging ×1