2009-07-14 20 views
1

PDFファイルを検証するアプリケーションを作成したいと思います。必要な検証は、PDFのすべてのテキストと画像が、左から0.5インチ、右から0.5インチの余白の後に開始することを確認することです。テキストのいずれかがこのマージン外に出る場合、アプリケーションはこれをキャッチできます。PDFテキストの位置、ページの左余白

私はこれをiTextに検索しようとしましたが、私の目的を解決できる有用なものは得られませんでした。

誰かがこのコードを.net csharpで書くのを手伝ってもらえますか? PDFは、デバイスに依存しないことになっているので、

おかげで、 Praveenさん

答えて

0

使用SetMarginMirroring(true)

+0

あなたはあなたの答えを詳しく説明してもらえます。私はPDFを作成していない、私はPDFファイルを読んで、画像のテキストが指定されたマージンを超えているかどうかを確認する必要があります。 – user423574

0

PDF標準は本当に、マージンの概念がありません。メディアボックス、クロップボックス、ブリードボックス、アートボックス、トリムボックスなど、出力を制限する5つのボックスがあります。通常、他の4つのボックスは、メディアボックスと同じサイズかそれよりも小さい。

あなたのpdfsにメディボックスがある場合は、それを取得してページの両側に0.5インチ小さいことを確認することができます。reader.getPageSize(pageNumber)とreader.getBoxSize彼らは同じになります可能性が非常に高い、「メディア」PAGENUMBER)。。

何ができるかは1/2インチの余裕があることを確認するためにPDFファイルを書き換えている。これまで最も簡単な方法は、ページを縮小である。

+0

私はreader.getBodSizeとreader.getPageSizeを使ってみました。どちらの関数も、8.5x11のようなページサイズを返しました。しかし、どのように私のテキストがメディアボックスの内側から始まっているのかという情報を得ることができます。ページのどのページにも左から0.5マージン前に開始する行が含まれているかどうかを巡回的に確認したい 私はPDFを書き直したくありません 各ページのメディボックスが持つ可能性があります私が理解したところでは、5つのボックスのいずれかの中にテキストを入れることができます。何とかボックスの開始位置を取得すると、うまくいくでしょう。 – user423574

+0

これはおそらくボックスが設定されていないことを意味します。 pdfに入れることができるものはオプションなので、特定のpdfがどのように構築されたかを知らなければ、レンダリングせずにマージンを検出することは非常に困難です。 –

1

R Ubbenの回答に加えて、reader.getPageSize(pageNumber)はまったく同じreader.getBoxSize(pageNumber,"media")と同じです。

これはホですそれはiTextSharpで実装されています。 source codeにそれを見ることができます。

エキス:

public Rectangle GetPageSize(PdfDictionary page) { 
    PdfArray mediaBox = page.GetAsArray(PdfName.MEDIABOX); 
    return GetNormalizedRectangle(mediaBox); 
} 
関連する問題