web-dev-qa-db-ja.com

スケーリングなしで印刷するようにPDF

PDF(fpdfを使用)を生成していますが、ドキュメントのプロパティをデフォルトに設定してスケーリングなしで印刷する方法があるかどうか疑問に思っています。

したがって、印刷ダイアログメニューから印刷を選択すると、スケーリングはなしに設定されます。これがユーザー設定なのか、PDFの作成で制御できるものなのかを判断しようとしています。

前もって感謝します。

11
JCam

スケーリングはPDFアプリケーションによって制御されます-ファイルには設定されていません。

1
mark stephens

メソッド_putcatalog()に次を追加して実行しました。

$this->_out('/ViewerPreferences [/PrintScaling/None]');

行の後:

$this->_out('/Type /Catalog');

メソッドの実装は迅速かつ簡単です...

10
onosenday

印刷スケーリングは、AdobeAcrobatを使用するinvividual 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

デフォルトのshrink-to-fitオプションを使用する場合。

7
Richard C

私にとっては、FPDFカタログメソッド_putcatalog()を変更して追加します

    $this->_out('/ViewerPreferences [/PrintScaling/None]');

目標を達成できなかったので、Acrobate XI PDF)によって生成されたコードを調べて、さらにいくつかの言い回しを見つけました。次のコードを追加します。

    $this->_out('/ViewerPreferences<</Duplex/Simplex/Enforce[/PrintScaling]/PrintScaling/None>>');

PDFを作成しましたが、これはデフォルトでスケーリングに設定されなくなり、代わりに、必要な実際のサイズを印刷するオプションのみが提供されました。

2
Robbt

さて、あなたがこのようなことを意味するかどうかはわかりません: 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);
0
spotlr

はい、わかりました。これを試してください:TCPDFで作成されたPDFを開き、viewerpreferencesとMediaBox以外のボックスステートメントのすべての発生を削除します...そうすることで、最終的にprint-default-scaling-free = PDF :)これらの追加情報のような継ぎ目-プロの印刷を目的としています-何かを手伝うのではなく、一般的なpdfビューアを混乱させるだけです:)

Tcpdf.phpに移動し、メソッド_putpagesの8529行を次のように変更します。

変化する

$boxes = array('MediaBox', 'CropBox', 'BleedBox', 'TrimBox', 'ArtBox');

$boxes = array('MediaBox');

私のPDF出力では、これによりスケーリングの問題が即座に解消されました:)

0
greenone83

私は同じ問題に遭遇しました。

PDFのコンテンツ(テキストと画像)がPDFの境界に非常に近いPDFがいくつかありますが、それでも印刷ダイアログのプレビュー/ Acrobatは、100%のスケーリングで印刷することを提案しているため、印刷できないコンテンツは切り取られます。プリンタの自然なマージンの。

たとえば、PagesでPDFを作成すると、デフォルトで100%のスケーリングで印刷されるPDFになります。

ただし、FPDFに関連するTCPDFを使用してPDFを作成した場合、プリンターダイアログはページに合わせて拡大縮小することを提案します。

PDFの作成方法が異なるのではないかと思います。ページと他のツールは別々のレイヤーを作成し、フラグなどによって異なる方法で処理されるのではないかと思います。

私は2つのPDFファイルの読み取り可能な部分を比較しましたが、特にドキュメントの開始方法に関して、いくつかの違いに遭遇しました。ただし、PDFソースに関する私の知識は非常に限られているため、何を変更する必要があるかを推測することしかできません。印刷可能なオブジェクト/領域を制御する方法が記載されているPDFリファレンスはありますか?

ここでは、スケーリングなしで印刷される最小限の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
0
greenone83