3

.docxファイルを.pdfファイルに変換しました。テキストは正常に変換されていますが、.docxファイル内の画像が表示されず、代わりにいくつかの特殊文字として表されています。以下は私のコードです。

import com.lowagie.text.Document;    
import com.lowagie.text.Paragraph;    
import com.lowagie.text.pdf.PdfWriter;    
import java.io.File;    
import java.io.FileOutputStream;    
public class PDFConversion {

    /**
     * 14. This method is used to convert the given file to a PDF format 15.
     * 
     * @param inputFile
     *            - Name and the path of the file 16.
     * @param outputFile
     *            - Name and the path where the PDF file to be saved 17.
     * @param isPictureFile
     *            18.
     */

    private void createPdf(String inputFile, String outputFile, boolean isPictureFile) {
        /**
         * 22. Create a new instance for Document class 23.
         */
        Document pdfDocument = new Document();
        String pdfFilePath = outputFile;

        try {
            FileOutputStream fileOutputStream = new FileOutputStream(pdfFilePath);
            PdfWriter writer = null;
            writer = PdfWriter.getInstance(pdfDocument, fileOutputStream);
            writer.open();
            pdfDocument.open();

            /**
             * 34. Proceed if the file given is a picture file 35.
             */
            if (isPictureFile) {
                pdfDocument.add(com.lowagie.text.Image.getInstance(inputFile));
            }

            /**
             * 41. Proceed if the file given is (.txt,.html,.doc etc) 42.
             */

            else {
                File file = new File(inputFile);
                pdfDocument.add(new Paragraph(org.apache.commons.io.FileUtils
                        .readFileToString(file)));      
            }
            pdfDocument.close();
            writer.close();
        } catch (Exception exception) {
            System.out.println("Document Exception!" + exception);
        }
    }

    public static void main(String args[]) {
        PDFConversion pdfConversion = new PDFConversion();
        pdfConversion.createPdf("C:/Users/LENOVO/Downloads/The_JFileChooser_Component.doc",
                "E:/The_JFileChooser_Component.pdf", false);
        // For other files
        // pdfConversion.createPdf("C:/shunmuga/sample.html",
        // "C:/shunmuga/sample.pdf", false);
    }
}
4

1 に答える 1

6

それが何であるかはわかりませんが、いくつかの代替案については以下をご覧ください。

  • Apose.Words Library for Java には、非常に優れた機能がいくつかあります。その 1 つは、いくつかの単純な行による docx から pdf への変換です (そして信頼性があります)。

    Document doc = new Document("d:/test/mydoc.docx");
    doc.Save("d:/test/Out.pdf", SaveFormat.Pdf);
    
  • docx や他の多くのものを PDF に変換するために使用できるDocx4jは、最初にIText に基づく HTML/XML を使用してこれを行い、次にそれを PDF に変換します (すべてのライブラリは docx4j に含まれています。完全を期すために itext リンクを追加しただけです)。

    org.docx4j.convert.out.pdf.PdfConversion c
     = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(wordMLPackage);//using xml
    // = new org.docx4j.convert.out.pdf.viaHTML.Conversion(wordMLPackage);//using html
    // = new org.docx4j.convert.out.pdf.viaIText.Conversion(wordMLPackage);//using itext libs
    

それだけでは不十分な場合は、試してみるためのサンプル ソース コードがあります。

于 2012-07-20T19:45:06.067 に答える