标签: pdf-manipulation

在PDF中使用Javascript

在哪里可以找到有关在PDF中运行Javascript的文档?

我从未在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.

javascript pdf documentation acrobat pdf-manipulation

69
推荐指数
3
解决办法
9万
查看次数

如何从命令行将PDF转换为灰度,避免被栅格化?

我正在尝试将此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消息"无法转换颜色空间..."或以另一种方式强制颜色空间?

谢谢!

pdf ghostscript grayscale pdf-conversion pdf-manipulation

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

在Elixir/Erlang中处理可填写的PDF

我一直在尝试在Elixir或Erlang中找到示例功能,以获取可填写的PDF,然后使用来自应用程序的输入数据填充它.

到目前为止,我无法在Elixir或Erlang中找到任何解决方案.

有没有人知道我们可以用来实现这个目标的好方法或模块?

提前致谢!

pdf erlang elixir pdf-manipulation phoenix-framework

13
推荐指数
1
解决办法
470
查看次数

使用PDFMiner解析没有/ Root对象的PDF

我正在尝试使用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)

python pdf-parsing pypdf pdf-manipulation

11
推荐指数
2
解决办法
8922
查看次数

如何将多个 pdf 连接为一个,每个输入 pdf 从偶数页开始?

重复我如何合并 PDF 文件(如果不可能则合并 PS),以便每个文件都以奇数页开头?

我有一系列文件,每个文件都有不可预测的页数。

说 :

  • a.pdf (1 页: A1)
  • b.pdf (3 页: B1, B2, B3)
  • c.pdf (4 页: C1, C2, C3, C4)

我想将这些输入文件合并成一个 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)

我想知道是否有更简单优雅的解决方案?

例如,是否可以在每个文件的开头添加分页符?

提前致谢

pdf page-break pdf-manipulation pdftk

6
推荐指数
0
解决办法
1698
查看次数

ImageMagick pdf 转黑白 pdf

我想使用 ImageMagick 将 pdf 文件转换为黑白 PDF 文件。但是我有两个问题:我使用这个命令:

convert -colorspace Gray  D:\in.pdf D:\out.pdf
Run Code Online (Sandbox Code Playgroud)
  1. 但是这个命令只转换第一个页面...如何转换所有页面?
  2. 使用此命令后,分辨率很糟糕……但如果我使用-density 300选项,文件大小增加了一倍多。所以我想使用相同的DPI设置,但如何使用?

非常感谢

imagemagick pdf-manipulation imagemagick-convert

5
推荐指数
1
解决办法
3136
查看次数

将多个 PDF 合并为一个 PDF

我的代码有一些问题。我正在尝试遍历包含许多 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 export-to-pdf pdf-manipulation google-apps-script

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

计算pdf中(Td,TD,Tm,cm,T *)内容流的确切位置?

获取或计算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 tagging accessibility pdf-manipulation pdfbox

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

使用 ghostscript 和 pdfmark 更新 pdf 元数据时编码错误

我有一个基本的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 encoding ghostscript pdf-manipulation

3
推荐指数
1
解决办法
2562
查看次数

使用pypdf2更改pdf文件的元数据

我想将元数据键值对添加到pdf文件的元数据中.

我找到了几年的答案,但我认为这是复杂的方法.我想今天有一种更简单的方法:https://stackoverflow.com/a/3257340/633961

我没有和pypdf2结婚,如果有更简单的方法,那我就这样走吧?

python pdf pdf-manipulation pypdf2

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