0

我正在尝试在 IBM i(AKA iseries,Power,很久以前的 AS/400)中使用 itext(5.5.13)。可以将 java 代码嵌入到 RPG ILE 过程中,或者执行纯 java。我们使用 Apache POI for Excel 有一段时间了,效果很好。我们现在正在测试 itext,但一些问题仍然存在。鉴于此,我正在尝试将纯 java 中的 itext 测试到 IBM i 中。我准备了一个非常简单的示例,取自“Itext in action”的清单 1.1,然后运行它。它似乎运行良好,但没有生成任何内容。没有 pdf 文件结果。并且运行时没有出现错误。我忘记了什么吗?还有其他方面需要考虑吗?这是代码:

package QOpenSys.CONSUM.Testjeu;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class test1{
    public static final String filePdf = "/QOpenSys/MyFolder/Testjeu/PdfRead1.pdf";
    
    public static void main(String[] args)
    throws DocumentException, IOException
     { 
        ///QOpenSys/MyFolder/Test/WrkBookRead1.pdf

        //pdfDocument = new_DocumentVoid()
        Document pdfDocument = new Document();

        //pdfWriter = get_PdfWriter( pdfDocument: pdfFilePath);
        PdfWriter.getInstance(pdfDocument, new FileOutputStream( filePdf ));

        // jItxDocumentOpen( pdfDocument );
        pdfDocument.open();

        //pdfParagraph = new_PdfParagraphStr( PhraseString );
        Paragraph jItxParagraph = new Paragraph("Hola, pdf");

        //addToDocPg = jItxDocumentAddParagraph( pdfDocument: pdfParagraph );
        pdfDocument.add(jItxParagraph);

        //jItxDocumentClose( pdfDocument );
        pdfDocument.close();
    }
}
4

1 回答 1

0

解决了。如前所述,存在第一个问题:似乎 java 函数运行良好,因为在 qshell 上看不到错误/警告。这是错误的:错误被发送到 outq,并且在假脱机文件中可用。经过审查,这是一个简单的类路径问题。它需要一整天的时间来找出定位类路径失败的原因。现在它可以工作了,并且创建了 pdf。我在 qshell 上运行它,为 java_home(三个 jvm 由多个应用程序同时执行)、类路径和跟踪所需的几个声明环境变量。类路径首先声明我的类,然后声明 itext 类。剩余的类来自 JRE。我有类加载器加载的类的完整列表。我希望它有助于找出我们嵌入式 RPG ILE 调用 itext 中失败的原因。

于 2020-07-02T11:17:35.600 回答