EPUBをPDFに変換する

Aspose.PDF for C++ は、EPUBファイルをPDF形式に簡単に変換することができます。

EPUB(電子出版の略)は、国際デジタル出版フォーラム(IDPF)による無料でオープンな電子書籍標準です。ファイルは.epub拡張子を持ちます。EPUBはリフロー可能なコンテンツ用に設計されており、EPUBリーダーが特定の表示デバイスに合わせてテキストを最適化できます。

EPUBは固定レイアウトのコンテンツもサポートしています。 フォーマットは、出版社やコンバージョンハウスが社内で使用するだけでなく、配布や販売のためにも使用できる単一のフォーマットとして意図されています。これはOpen eBook標準に取って代わります。EPUB 3バージョンは、標準化されたベストプラクティス、研究、情報、イベントのための主要な書籍取引協会であるBook Industry Study Group(BISG)によっても承認されています。

変換手順:

  1. パス名とファイル名のためにStringクラスを作成します。
  2. EpubLoadOptionsクラスのインスタンスを作成します。
  3. ソースファイル名とオプションを指定してDocumentクラスのインスタンスを作成します。
  4. 入力ファイルをロードして保存します。

次のコードスニペットは、C++でEPUBファイルをPDF形式に変換する方法を示しています。

void ConvertEPUBtoPDF()
{
    std::clog << "EPUB to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("aliceDynamic.epub");
    String outfilename("epub_test.pdf");
    auto options = MakeObject<EpubLoadOptions>();
    try {
    auto document = MakeObject<Document>(_dataDir + infilename, options);
    document->Save(_dataDir + outfilename);
    }
    catch (System::Exception ex) {
    std::cerr << ex->get_Message() << std::endl;
    }
    std::clog << "EPUB to PDF convert: End" << std::endl;
}

テキストを PDF に変換

Aspose.PDF for C++ はプレーンテキストや事前にフォーマットされたテキストファイルを PDF フォーマットに変換する機能をサポートしています。

テキストを PDF に変換するということは、テキストフラグメントを PDF ページに追加することを意味します。テキストファイルに関しては、事前フォーマットされたテキスト(例えば、1行に80文字の25行)とフォーマットされていないテキスト(プレーンテキスト)の2種類のテキストを扱います。私たちのニーズに応じて、この追加を自分で制御するか、ライブラリのアルゴリズムに任せることができます。

プレーンテキストファイルを PDF に変換

プレーンテキストファイルの場合、次の方法を使用できます:

  1. Create a String Class for path name and file name.
  2. TextReader を使用してソーステキストファイルを読み込みます。
  3. Document オブジェクトをインスタンス化します。
  4. ドキュメントのページコレクションに Page を追加します。
  5. TextFragment の新しいオブジェクトを作成し、TextReader オブジェクトをそのコンストラクタに渡します。
  6. 段落コレクションに新しいテキスト段落を追加し、TextFragment オブジェクトを渡します。
  7. 入力ファイルを読み込み、Save します。
void ConvertTextToPDF()
{
    std::clog << "Text to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.txt");
    String outfilename("TextToPDF.pdf");

    // Read the source text file
    String content = System::IO::File::ReadAllText(_dataDir + infilename);

    // Instantiate a Document object by calling its empty constructor
    auto document = MakeObject<Document>();

    // Add a new page in Pages collection of Document
    auto page = document->get_Pages()->Add();

    // Create an instance of TextFragmet and pass the text from reader object to its constructor as argument
    auto text = MakeObject<TextFragment>(content);

    // Add a new text paragraph in paragraphs collection and pass the TextFragment object
    auto paragraphs = page->get_Paragraphs();
    paragraphs->Add(text);

    // Save resultant PDF file
    document->Save(_dataDir + outfilename);
    std::clog << "Text to PDF convert: End" << std::endl;
}

プレフォーマットされたテキストファイルをPDFに変換

プレフォーマットされたテキストの変換は、プレーンテキストに似ていますが、マージン、フォントの種類とサイズの設定など、いくつかの追加のアクションを実行する必要があります。明らかに、そのフォントは等幅フォント(例えばCourier New)であるべきです。

C++でプレフォーマットされたテキストをPDFに変換するために、次の手順に従います:

  1. 空のコンストラクタを呼び出してDocumentオブジェクトをインスタンス化します。
  2. より良いプレゼンテーションのために左と右のマージンを設定します。
  3. Documentオブジェクトをインスタンス化し、Pagesコレクションに新しいページを追加します。
  4. 入力画像ファイルを読み込み、保存します。

XPSをPDFに変換

**Aspose.PDF for C++**はXPSファイルをPDF形式に変換する機能をサポートしています。この記事をチェックして、タスクを解決してください。

XPSファイルタイプは、主にMicrosoft CorporationによるXML Paper Specificationに関連付けられています。XML Paper Specification (XPS)は、かつてMetroのコードネームを持ち、次世代プリントパス (NGPP) マーケティングコンセプトを包含していたもので、Microsoftがドキュメント作成と表示をWindowsオペレーティングシステムに統合するための取り組みです。

Aspose.PDF for C++を使用してXPSをPDFに変換するために、XpsLoadOptionというクラスを導入しました。このクラスはLoadOptionsオブジェクトを初期化するために使用されます。その後、このオブジェクトはDocumentオブジェクトの初期化時に引数として渡され、PDFレンダリングエンジンがソースドキュメントの入力形式を判断するのに役立ちます。

以下のコードスニペットは、C++でXPSファイルをPDF形式に変換するプロセスを示しています。

void ConvertXPStoPDF()
{
    std::clog << "XPS to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.oxps");
    String outfilename("XPStoPDF.pdf");
    auto options = MakeObject<XpsLoadOptions>();
    try {
        auto document = MakeObject<Document>(_dataDir + infilename, options);
        document->Save(_dataDir + outfilename);
    }
    catch (System::Exception ex) {
        std::cerr << ex->get_Message() << std::endl;
    };
    std::clog << "XPS to PDF convert: Finish" << std::endl;
}

XMLをPDFに変換

XML形式は構造化データを保存するために使用されます。Aspose.PDFでは、XMLをPDFに変換するいくつかの方法があります。

XSL-FOをPDFに変換

  1. パス名とファイル名のためのString Classを作成します。
  2. XslFoLoadOption objectをインスタンス化します。
  3. エラーハンドリング戦略を設定します。
  4. Documentオブジェクトをインスタンス化します。
  5. Save 入力画像ファイル。
void Convert_XSLFO_to_PDF()
{
    std::clog << "XSL-FO to PDF convert: Start" << std::endl;
    String _dataDir("C:\\Samples\\Conversion\\");
    String infilenameXSL("c:\\samples\\employees.xslt");
    String infilenameXML("c:\\samples\\employees.xml");

     String outfilename("XMLFOtoPDF.pdf");
    // XslFoLoadOptionオブジェクトをインスタンス化
    auto options = new XslFoLoadOptions(infilenameXSL);
    // エラーハンドリング戦略を設定
    options->ParsingErrorsHandlingType = XslFoLoadOptions::ParsingErrorsHandlingTypes::ThrowExceptionImmediately;
    // Documentオブジェクトを作成
    auto document = MakeObject<Document>(infilenameXML, options);
    document->Save(_dataDir + outfilename);
}