我所面临的问题如下。我有一个源文档,src.pdf。
我需要将src.pdf的内容插入到target.pdf中,旋转为n度,其中n不是90的倍数。
任何帮助都将不胜感激,谢谢。
编辑1:
PDF不包含注释。
我可以使用任何依赖于实用程序的解决方案,或者编写我自己的代码,最好是用C#/Python/Ruby/Perl,但不限于一种语言。
该平台是Windows 2008 R2,我更喜欢使用现有的服务器,但Linux也是一种选择。已经安装了最新(稳定) GhostScript和pdftk。
发布于 2012-11-27 09:06:20
如果一种新语言不是问题,LateX可能是一种选择。您可以将pdf作为一个图形包含在tex文件中,并且您将能够使用专用的选项,如重新标度和旋转功能。然后,编译它以获得一个新的pdf。下面的代码非常简单,适用于我:
\documentclass[a4paper]{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[scale=0.5,angle=10]{test.pdf}
\end{document}
从这个pdf中:
我得到了这个新的:
不过,它需要一些手动调整才能得到你想要的.
发布于 2015-03-16 18:29:05
您可以像这样使用TexLive:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages={-},angle=30]{main}
\end{document}
它将旋转整个pdf -每一页!
然而,我不是那个想明白这一点的人-- 检查此线程以获得原始解决方案。 (给那个家伙一个分数!)
发布于 2012-11-27 08:08:08
因为您不需要处理注释,所以可以尝试使用您选择的任何PDF库来分解PDF字典并对页面内容进行解码。获得页面内容后,可以在页面的开头插入一个变换矩阵:cosθsinθ−sinθcosθ0 0。
我建议看一看来自Adobe的PDF参考文件,特别是关于转换矩阵的部分。
例如,如果您有以下页面内容对象(40 0 obj):
10 0 obj % Page object
<< /Type /Page
/Parent 5 0 R
/Resources 20 0 R
/Contents 40 0 R
>>
endobj
40 0 obj % Page content
BT
/F1 1 Tf
12 0 0 12 100 600 Tm
(Hello) Tj
ET
endobj
如果假定cos( 45 )=sin(45)=0.7,则希望将整个页面旋转45度,生成的页面内容如下:
40 0 obj
0.7 0.7 -0.7 0.7 0 0 cm
BT
/F1 1 Tf
12 0 0 12 100 600 Tm
(Hello) Tj
ET
endobj
添加完转换矩阵后,可以重新编写PDF文件.然后,您选择的库应该根据需要添加压缩过滤器和编码过滤器。
例如,iText可以分解和重新组合PDF文件。有关详细信息,请参阅方法PdfReader.getPageContent。
https://stackoverflow.com/questions/13586726
复制