web-dev-qa-db-ja.com

iTextSharp-Word doc / docxをpdfに変換

ITextSharpを使用してドキュメントをPDFに変換できることを理解しています。

ただし、最初にiTextSharp.text.Documentを使用してドキュメントを最初から作成し、次にこのドキュメントに要素を追加する必要があります。

既存のドキュメントファイルがある場合、iTextSharpを使用してこのドキュメントをPDFに変換できますか?.

また、私はiTextSharpまたはdocファイルで以下を実行できる同様のツールを使用したいと思います。

  1. doc/docx/textファイルの操作(一部のプレースホルダーをDB値で置き換えるなど)および
  2. それらを.pdfに変換します

これについて考えている人は誰でも共有してください。

ありがとうございました!

15
inutan

Aspose.Words コンポーネントは、これを確実に実行できます(私は提携関係にありません)。

iTextSharpには、MS Wordファイル形式をロードして処理するために必要な機能セットがありません。

14
Lucero

Microsoft.Officeの既存のメソッドを使用できます

 private Microsoft.Office.Interop.Word.ApplicationClass MSdoc;

    //Use for the parameter whose type are not known or say Missing
    object Unknown = Type.Missing;

  private void Word2PDF(object Source, object Target)
    {   //Creating the instance of Word Application
      if (MSdoc == null)MSdoc = new Microsoft.Office.Interop.Word.ApplicationClass();

        try
        {
            MSdoc.Visible = false;
            MSdoc.Documents.Open(ref Source, ref Unknown,
                 ref Unknown, ref Unknown, ref Unknown,
                 ref Unknown, ref Unknown, ref Unknown,
                 ref Unknown, ref Unknown, ref Unknown,
                 ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
             MSdoc.Application.Visible = false;
              MSdoc.WindowState =   Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateMinimize;

            object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;

            MSdoc.ActiveDocument.SaveAs(ref Target, ref format,
                    ref Unknown, ref Unknown, ref Unknown,
                    ref Unknown, ref Unknown, ref Unknown,
                    ref Unknown, ref Unknown, ref Unknown,
                    ref Unknown, ref Unknown, ref Unknown,
                   ref Unknown, ref Unknown);
          }
           catch (Exception e)
          {
            MessageBox.Show(e.Message);
           }
         finally
          {
            if (MSdoc != null)
            {
                MSdoc.Documents.Close(ref Unknown, ref Unknown, ref Unknown);
                //WordDoc.Application.Quit(ref Unknown, ref Unknown, ref Unknown);
            }
            // for closing the application
            WordDoc.Quit(ref Unknown, ref Unknown, ref Unknown);
        }
    } 
3

Aspose.Wordsは確かに優れたソリューションですが、完璧な忠実度は提供されません。執筆時点では、ローマ字以外の言語、浮動要素などの複雑な書式設定、および他の多くの問題に問題があります。

あなたはこれを見てみたいかもしれません PDF変換Webサービス Javaおよび.NETを含むあらゆるWebサービス対応環境から使用できます)。

通常の免責事項が適用されるように、私はこのプロジェクトに取り組んだことに注意してください。

3

同じ問題があります。
解決策を見つけるために数日試行した後、Javaベースのツールである Docx4J 、またはPDFプリンター PDFCreator のようです、無料のソリューションの1つである可能性があります。
確かに、商用ツールだけが要求されたタスクを効果的に実行できます。
Microsoft側では、サーバー側で有効な Sharepoint Word Automation Services 、(2016年6月7日に確認)、またはローカルコンピューターの相互運用を使用できます。
推奨されるパーツからパーツへの変換(DOCまたはDOCからいくつかの中間言語へ、次にPDFへ) stackoverflowや他のフォーラムでは、結果は期待されたものではないため、不可能であると述べていました。

1
JosefMadrid

書式設定がWordの表示内容に忠実であるかどうかを気にしない場合は、印象的な docx2tex があり、Word 2007 docxファイルをLatexドキュメントに変換します。 Latexに入ると、ドキュメントをプログラムで再フォーマットして、PDFを生成する)ための多くの能力があります。

ユーティリティの詳細については tex.stackexchange で回答します。

1
Charles Stewart

Docx操作には、ネイティブのOpen XMLメソッドを使用する必要があります。 MicrosoftからOpen XML SDK 2をダウンロードします。

そして、この有料ライブラリ http://www.subsystems.com/dpw.htm でdocxファイルをPDFに変換できます。本当に素晴らしいです。

0
mucit