一个非常简单的案例在IBM i中使用itext不写pdf文件

a very simple case does not write pdf file by using itext in IBM i

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

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();
    }
}

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