2009-05-14 23 views
1

PdfStamperクラスを使用して、iTextSharpと.NET 3.5 SP1(C#では推測できるように)で既存のPDFを変更しています。iTextSharpを使用して異なるPDFの座標系と置き換えられたテキストの問題

座標系

の変換、私はそれを見ると、iTextSharpは、測定の単位として(ポストスクリプト?)ポイントを使用しているが、私はこれらの座標を変換したい:今、私は2つの問題を持っていますミリメートル。今、これを達成する最良の方法はどうですか?私は変換行列の権利を得た願っています

PdfContentByte cb = new PdfContentByte(); 
System.Drawing.Drawing2D.Matrix scale = new System.Drawing.Drawing2D.Matrix(
    0.352777778, 0, 0.352777778, 0, 0, 0); // 1 point = 0.352777778 mm 
cb.Transform(scale); 

:ドキュメントの外観を撮影

は、次のアプローチを明らかにしました。しかし、問題は:System.Drawing.Drawing2Dアセンブリがありません!このアセンブリが落ちたのか、それとも何が起こったのですか? iTextSharpの座標をミリメートルに変換するにはどうすればよいですか?私はここで間違った方法でですか? PDFで

テキストが同じ座標

私は、同じ内容二つの異なる PDFファイルを変更しながら、同じ座標がずれてしまったことに気づいて、テキストを使用して別のPDFに変位します正確に同じ位置に配置されていません。これを引き起こしていると私はそれを防ぐことができますか?

alt text http://i41.tinypic.com/20u5tfc.gif

これは、iTextSharpに正確に同じ座標を使用して作成した第二のPDFである:すべてのヘルプを理解され

alt text http://i44.tinypic.com/2qjzoex.gif

これは、最初のPDFです。

答えて

1

ただし、問題は次のとおりです。 System.Drawing.Drawing2Dアセンブリがありません。 このアセンブリが落ちたか、何が起こったのですか に? iTextSharpの 座標を ミリメートルに変換するにはどうすればよいですか。私は間違った方法でここに ですか?

http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx

(System.Drawing.dllで)

+0

このクラスはどのように使用しますか?私はすでに "using System.Drawing;"を挿入しました。しかし、それでもSystem.Drawing.Drawing2D.Matrixは認識されません。私は "System.Drawing.dll"が何を意味するのか分かりません。これを他の方法で含める必要がありますか? –

+0

System.Drawing.Dllを参照する必要があります。プロジェクトでReferencesフォルダを探します。右クリックし、参照を追加し、5分後に最初のタブでSystem.Drawing.Dllを検索します。今私の2点を返せ! – Will

+0

参照したら、例のように使用することができます。彼らは行列の変換を行っていますが、これは学習や理解が最も簡単なことではありません。サンプルコードよりも多くのことをしたいのであれば、自分で読んでいく必要があります。私は恐れています。 – Will

0

さて、私が使用されているにもかかわらず、同じ座標変位されるテキストの第2の問題を解決しました。

最初のPDFには見えないトリミングスペースが含まれていましたが、2番目のPDFには見えませんでした。トリミングスペースが表示されないのは、PDF作成者を使用してビュースペースがトリミングされたためですが、表示されているように、トリミングスペースはまだ存在しており、座標がカウントされています。

関連する問題