2017-08-02 12 views
1

既存のpdfドキュメントのテーブル行の高さを変更したいと思います。行の高さを上げると、テーブルの下のコンテンツを自動的に下に移動したいと思います。私はhummuspdfで試しましたが、これを行う明白な方法ではないようです。プログラム的に私の要求を達成する方法はありますか?既存のpdfファイルのテーブル行の高さを増やす

+0

使用しているiTextのバージョンはどれですか。 iText 5とiText 7の両方で行の高さを変更するのは簡単ですが、これを行うコードは使用しているバージョンによってかなり異なります。あなたのコードのいくつかを表示してください。あなたが試したことを示してください。 (既存のPDF *の編集について話しているのでない限り、どのソフトウェアを使用していてももちろん不可能*) –

+0

* "既存のPDFを編集することを話しているのでなければ" * - 私はそれがそうであると感じる... – mkl

+0

それは正しいです。私は終わりのpdfを編集しようとしています。私の質問を更新してください。ありがとう! – Raj

答えて

3

既存のPDFドキュメントのテーブル行の高さを変更したいと考えています。

あなたはこれに対する答えが嫌いではありません。それは技術的に可能ですが、あなたが思っているよりもはるかに困難です。

ここに2つの主要な障害があります。1)PDFは編集可能な形式ではありません。 2)PDF文書には表の概念がありません。

2)に展開すると、PDFには絶対的な位置を参照する一連の描画命令とテキスト命令が含まれています。テーブルとは、テーブルを視覚的に表現する一連のテキスト命令と線描画命令のことです。

これらの命令は、ファイル内で互いに近くする必要はありません。境界線の線ストロークは、ファイルの最上部とファイルの終わり近くにある1つのテキスト命令以外のすべてで見つけることができます。最後の命令は中間のどこかにあります。

作成中に明示的に構造が追加されていない限り(タグ付きPDFを参照)、テーブルに視覚的に似た命令セットをプログラムで確実に識別することはできません。

あなたは運が良かったと思っていましたが、今はテーブルの高さを上げて、残りの内容を新しい高さに適応させたいと思っています。今1)が活躍します。 PDF命令は絶対座標を参照するので、境界線を構成する線、表の中のテキスト、表の下のすべての内容などを再計算する必要があります。

そして、表の下の内容必ずしもファイル内のテーブル命令の下にあるとは限りません。

これで成功すれば、多くの人があなたのソリューションに非常に興味を持っていると思います。

TL; DRは:

この一見些細な機能は、一般的に使用されるPDFライブラリには存在しない理由があるのです、とPDF形式が難しい問題になるためです。

+2

そして、忘れないように、フッターの行は明らかに下に移動したくないかもしれません。代わりに、フッター領域に移動して次のページに移動する前の行が必要になります。同じページにある次の列に移動します。これらの(そしてもっと多くの)詳細に関する機械可読情報は必ずしもPDFに埋め込まれているわけではなく、そのような構造を認識するルーチンを実装することは本当に些細なことではありません... – mkl

関連する問題