我正在生成一个PDF(使用fpdf),我想知道是否有办法将文档的属性设置为默认打印而不进行缩放。
因此,当您从打印对话框菜单中选择打印时,缩放设置为无。我正在尝试确定这是用户设置还是我可以在创建PDF时控制的内容。
提前致谢。
答案 0 :(得分:8)
我已经完成了以下方法_putcatalog()
的添加:
$this->_out('/ViewerPreferences [/PrintScaling/None]');
行后:
$this->_out('/Type /Catalog');
实施方法既快捷又简单......
答案 1 :(得分:6)
使用Adobe Acrobat可以关闭单个PDF文件的打印缩放,转到文件 - >偏好 - >高级 - >页面缩放。 (您可以使用Acrobat的试用版来尝试此操作。)
至于在代码中实现这一点,我尝试过但未能使其工作,但文件中的关键区别似乎是:
10 0 obj
<</Metadata 2 0 R/Outlines 6 0 R/Pages 7 0 R/Type/Catalog/ViewerPreferences<</PrintScaling/None>>>>
endobj
与非缩放PDF相比,
10 0 obj
<</Metadata 2 0 R/Outlines 6 0 R/Pages 7 0 R/Type/Catalog>>
endobj
对于那些使用默认缩小到适合选项的人。
答案 2 :(得分:2)
缩放由PDF应用程序控制 - 它未在文件中设置。
答案 3 :(得分:2)
我改变FPDF Catalog方法_putcatalog()并添加
$this->_out('/ViewerPreferences [/PrintScaling/None]');
没有完成目标所以我查看了Acrobate XI PDF生成的代码,发现了更多的问题。添加以下代码
$this->_out('/ViewerPreferences<</Duplex/Simplex/Enforce[/PrintScaling]/PrintScaling/None>>');
创建了一个不再默认为缩放的PDF,而只是提供了打印实际尺寸的选项。
答案 4 :(得分:0)
嗯,我不确定你的意思是否是这样的: http://www.fpdf.org/en/doc/setdisplaymode.htm
或没有“缩放”图像?
$im2 = pdf_open_image_file($dokument, 'jpeg', 'example.jpg');
pdf_place_image($dokument, $im2, 395, 655, 1.0); /* 1.0 = qualiti/scaling - 1.0 is original .../*
pdf_close_image($dokument, $im2);
答案 5 :(得分:0)
我遇到了同样的问题。
我有几个PDF,其中PDF的内容,即文本和图像,非常接近PDF边框,但仍然是打印对话预览/ Acrobat建议以100%缩放打印它,从而切断不是'的内容由于打印机的自然利润,可打印。
在页面中创建任何PDF,例如结果为PDF,默认情况下以100%缩放打印。
但是,如果我使用与FPDF相关的TCPDF创建PDF,而不是打印机对话框建议缩放它以适合页面。
我怀疑PDF的创建方式是不同的。我怀疑Pages和其他工具会创建单独的图层,然后它们会以不同方式进行处理,可能是通过标记或其他内容。
我比较了两个PDF文件的可读部分,并且确实遇到了一些差异,特别是文档的开始方式。我对PDF-Sources的了解非常有限,所以我只能猜测需要改变什么。 是否有PDF-Reference,其中说明了如何控制可打印的对象/区域?
此处将打印的最小PDF的内容不会缩放:
%PDF-1.4
1 0 obj
<< /Type /Catalog
/Outlines 2 0 R
/Pages 3 0 R
>>
endobj
2 0 obj
<< /Type /Outlines
/Count 0
>>
endobj
3 0 obj
<< /Type /Pages
/Kids [4 0 R]
/Count 1
>>
endobj
4 0 obj
<< /Type /Page
/Parent 3 0 R
/MediaBox [0 0 595 842]
/Contents 5 0 R
/Resources << /ProcSet 6 0 R
/Font << /F1 7 0 R >>
>>
>>
endobj
5 0 obj
<< /Length 73 >>
stream
BT
/F1 24 Tf
100 100 Td
(Hello World) Tj
ET
endstream
endobj
6 0 obj
[ /PDF /Text ]
endobj
7 0 obj
<< /Type /Font
/Subtype /Type1
/Name /F1
/BaseFont /Helvetica
/Encoding /MacRomanEncoding
>>
endobj
xref
0 8
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n
0000000364 00000 n
0000000466 00000 n
0000000496 00000 n
trailer
<< /Size 8
/Root 1 0 R
>>
startxref
625
%%EOF
答案 6 :(得分:0)
好的,我想我明白了。 试试这个:打开你的TCPDF创建的PDF并删除所有发现的viewerpreferences和除MediaBox之外的任何box语句......这样做最终导致了print-default-scaling-free PDF :) 像专业印刷这样的附加信息接缝 - 只会混淆普通的pdf-viewer,而不是帮助做任何事情:)
转到tcpdf.php并更改方法_putpages中的第8529行,如下所示
变化
$boxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox');
到
$boxes = array('MediaBox');
在我的PDF输出中,这立即消除了缩放问题:)