1

以下は、Word文書をPDFに変換するために使用したコードです。コードをコンパイルすると、PDF ファイルが生成されます。しかし、このファイルには、Word 文書の内容とともにいくつかのジャンク文字が含まれています。ジャンク文字を取り除くためにどのような変更を行うべきかを教えてください。私が使用したコードは次のとおりです。

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 PdfConverter 
{

    private void createPdf(String inputFile, String outputFile)//, boolean isPictureFile) 
    {
        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(); 
            /*if (isPictureFile) 
            { 
            pdfDocument.add(com.lowagie.text.Image.getInstance(inputFile)); 
                } 
            else 
            { */
            File file = new File(inputFile); 
    pdfDocument.add(new Paragraph(org.apache.commons.io.FileUtils.readFileToString(file))); 
                //} 
            pdfDocument.close(); 
            writer.close(); 
            System.out.println("PDF has been generted"); 
            } 
            catch (Exception exception) 
            { 
            System.out.println("Document Exception!" + exception); 
            } 
            } 

    public static void main(String args[]) 
    { 
    PdfConverter pdfConversion = new PdfConverter(); 
    pdfConversion.createPdf("C:/test.doc", "C:/test.pdf");//, true); 

        }

    }

助けてくれてありがとう。

4

2 に答える 2

2

クラスにPdfConverterという名前を付けたからといって、それはありません。バイナリコンテンツを文字列として読み取り、これを1つの段落として書き込むだけです(これが表示されます)。このアプローチは間違いなく成功しません。同様の質問については、https://stackoverflow.com/questions/437394を参照してください。

Word文書の内容だけに興味がある場合は、Apache POI(MicrosoftDocuments用のJavaAPI )を使用して、バイナリレベルではなく、高度な抽象化レベルで文書を読み取ってみてください。Word文書が単純な(そして私は本当に単純な)構造を持っている場合、妥当な結果が得られる可能性があります。

于 2012-08-07T10:58:46.727 に答える
1

これを行うには、doc ファイルを正しく読み取り、読み取ったデータを使用して PDF ファイルを作成する必要があります。

あなたが今していることは、データを読み取るために適切な API を使用していないためにガベージ値を持つ doc ファイルからデータを読み取り、取得したガベージ データを PDF ファイルに格納することです。したがって、問題。

于 2012-08-07T12:33:29.753 に答える