1

質問に適切なタイトルを付けることができません。:)

既存のPDFファイルからページを分割(取得)する必要がある方法。私はこれにdroidtextを使用しています。

私のコードは

  try {

        String path = Environment.getExternalStorageDirectory()
                + "/test123.pdf";
                    /*Read Existing PDF*/ 
        PdfReader reader = new PdfReader(path);

        Document doc = new Document();
        doc.open();

        File outfile = new File(Environment.getExternalStorageDirectory()
                + "/test_new.pdf");
        if (!outfile.exists())
            outfile.createNewFile();

        FileOutputStream decfos = new FileOutputStream(outfile);

        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, decfos);
        document.open();
        /*Getting First page*/  
        PdfImportedPage page = writer.getImportedPage(reader, 1);

        Image instance = Image.getInstance(page);

        document.add(instance);
        document.close();

    } catch (DocumentException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

「test123.pdf」ファイルから1ページのPDFを作成したい。新しいPDFを作成しています。

しかし、問題は新しいPDFファイルに白い境界線があることです。これらの空白を削除するにはどうすればよいですか。元のPDFには、そのような白い境界線はありません。

ここに画像の説明を入力してください

編集 私は次のコードでもう一度試してみます。しかし、それはnullポインタ例外を与えますcopy.addPage(page);

String path = Environment.getExternalStorageDirectory()
                + "/test123.pdf";
        PdfReader reader = new PdfReader(path);

        PdfImportedPage page;
        PdfSmartCopy.PageStamp stamp;
        File outfile = new File(Environment.getExternalStorageDirectory()
                + "/test_new.pdf");
        Document doc = new Document();
        if (!outfile.exists())
            outfile.createNewFile();

        FileOutputStream decfos = new FileOutputStream(outfile);
        PdfSmartCopy copy = new PdfSmartCopy(doc, decfos);
        page = copy.getImportedPage(reader, 5);

        stamp = copy.createPageStamp(page);

        stamp.alterContents();
        copy.addPage(page);
4

1 に答える 1

2

私は2つの理由で質問に反対票を投じました:

  1. あなたは公式文書を読んでいませんでした。ドキュメントを読まないことが間違っている理由については、iTextSharpPdfSmartCopyクラスのDirectContentの編集を参照してください。
  2. 私はiTextの最初の開発者であり、DroidTextの使用を推奨していません。これは公式のiTextリリースではありません。http://lowagie.com/itext2私はベルギーに住んでおり、ベルギーの法律により、私が作成したすべての著作権について著作者人格権を持っていることに注意してくださいこれにはiText2.1.7が含まれます。

あなたの質問に関しては:あなたはフォーマットA4でページを作成しています。これらのページに、サイズが不明なインポートされたページを追加します。それらのページのサイズもA4であれば、収まります。サイズが異なる場合は、そうではありません。クリップされるか、不要なマージンがあります。

于 2012-10-11T21:28:21.210 に答える