0

iTextpdf-5.1.0 をダウンロードし、プロジェクトのライブラリに追加しました。

    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.pdf.PdfWriter;

    /**
    * First iText example: Hello World.
     */
   public class Testcase {

    /** Path to the resulting PDF file. */
      public static final String RESULT= "E:/hello.pdf";

     /**
      * Creates a PDF file: hello.pdf
      * @param    args    no arguments needed
      */
      public static void main(String[] args)
       throws DocumentException, IOException {
        new Testcase().createPdf(RESULT);
       }

     /**
     * Creates a PDF document.
      * @throws    DocumentException 
     * @throws    IOException 
     */
    public void createPdf(String filename)
    throws DocumentException, IOException {
    // step 1
    Document document = new Document();
    // step 2
    PdfWriter.getInstance(document, new FileOutputStream(filename));
    // step 3:gives error as no suitable method
    document.open();
    // step 4
    document.add(new Paragraph("Hello World!"));
    // step 5
    document.close();
    }
   }

ステップ 3: で、次のエラーが表示されますno suitable method found for getInstance()。なぜこのエラーが発生するのですか? 誰でも教えてもらえますか?

4

3 に答える 3

0

これは私のために働きます:

public static void createPdf() throws DocumentException, IOException {

    File f = File.createTempFile("test", ".pdf");

    // step 1
    Document document = new Document();
    // step 2
    PdfWriter.getInstance(document, new FileOutputStream(f));
    // step 3:gives error as no suitable method
    document.open();
    // step 4
    document.add(new Paragraph("Hello World!"));
    // step 5
    document.close();
}

変更したのはファイル名だけなので、問題はファイル名にあると思います。E:\ hello.pdf (円記号付き)を使用して、JVMがその場所で書き込みアクセス権を持っていることを確認してください。

それでも問題が解決しない場合は、完全なスタックトレースを提供してください。

于 2012-08-20T13:57:41.937 に答える
0

あなたのコードは私のために働きます。私がしなければならない唯一の変更は、出力ファイル名です。 つまり 、public static final String RESULT = "C:\\hello.pdf";出力ファイル名にはエスケープ文字 "\" が必要です。

itextpdf-5.3.2.jarでテストしました。

これを試して。

import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

/**
 * First iText example: Hello World.
 */
public class CreatePdf2 {

    /** Path to the resulting PDF file. */
    public static final String RESULT = "C:\\hello.pdf";

    /**
     * Creates a PDF file: hello.pdf
     * 
     * @param args
     *            no arguments needed
     */
    public static void main(String[] args) throws DocumentException,
            IOException {
        new CreatePdf2().createPdf(RESULT);
    }

    /**
     * Creates a PDF document.
     * 
     * @throws DocumentException
     * @throws IOException
     */
    public void createPdf(String filename) throws DocumentException,
            IOException {
        // step 1
        Document document = new Document();
        // step 2
        PdfWriter.getInstance(document, new FileOutputStream(filename));
        // step 3:gives error as no suitable method
        document.open();
        // step 4
        document.add(new Paragraph("Hello World!"));
        // step 5
        document.close();
    }
}
于 2012-08-23T03:24:54.053 に答える