さまざまな画像形式をPDFに変換する

Aspose.PDF for C++ を使用すると、さまざまな形式の画像をPDFファイルに変換できます。当ライブラリは、BMP、DICOM、EMF、JPG、PNG、SVG、TIFFといった最も一般的な画像形式を変換するためのコードスニペットを示しています。

BMPをPDFに変換

Aspose.PDF for C++ ライブラリを使用してBMPファイルをPDFドキュメントに変換します。

BMP 画像は拡張子を持つファイルです。BMPはビットマップ画像ファイルを表し、ビットマップデジタル画像を保存するために使用されます。これらの画像はグラフィックアダプタに依存せず、デバイス独立ビットマップ (DIB) ファイル形式とも呼ばれます。Aspose.PDF for C++ APIを使用してBMPをPDFファイルに変換できます。 したがって、BMP画像を変換するために次の手順に従うことができます:

  1. パス名とファイル名のためのString Classを作成します。
  2. 新しいDocumentオブジェクトのインスタンスを作成します。
  3. このDocumentに新しいPageを追加します。
  4. 新しいAspose.Pdf BMPを作成します。
  5. 入力ファイルを使用してAspose.PDF BMPオブジェクトを初期化します。
  6. Aspose.PDF BMPを段落としてページに追加します。
  7. 最後に、出力PDFファイルを保存します。

したがって、次のコードスニペットはこれらの手順に従い、C++を使用してBMPをPDFに変換する方法を示しています:

void ConvertBMPtoPDF() 
{
    std::clog << "BMP to PDF convert: Start" << std::endl;

    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.bmp");

    // String for input file name
    String outfilename("ImageToPDF-BMP.pdf");

    // Open document
    auto document = MakeObject<Document>();

    // Add empty page in empty document
    auto page = document->get_Pages()->Add();
    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Add image on a page
    page->get_Paragraphs()->Add(image);

    // Save output document
    document->Save(_dataDir + outfilename);

    std::clog << "BMP to PDF convert: Finish" << std::endl;
}

DICOMをPDFに変換

DICOM形式は、デジタル医療画像や診断された患者の文書の作成、保存、送信、視覚化のための医療業界の標準です。

**Aspsoe.PDF for C++**はDICOMおよびSVG画像を変換することができますが、技術的な理由で画像を追加するためには、PDFに追加するファイルの種類を指定する必要があります:

  1. パス名とファイル名のためにString Classを作成します。
  2. インスタンス化する Document オブジェクト。
  3. ドキュメントのページコレクションに Page を追加します。
  4. Aspose.PDF TDicom が段落としてページに追加されます。
  5. 入力画像ファイルを読み込み、保存 します。

次のコードスニペットは、Aspose.PDF を使用して DICOM ファイルを PDF 形式に変換する方法を示しています。DICOM 画像を読み込み、PDF ファイルのページに画像を配置し、出力を PDF として保存する必要があります。

void ConvertDICOMtoPDF()
{
    std::clog << "DICOM to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("CR_Anno.dcm");
    String outfilename("PDFWithDicomImage_out.pdf");

    // Instantiate Document Object
    auto document = MakeObject<Document>();

    // Add a page to pages collection of document
    auto page = document->get_Pages()->Add();

    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);
    image->set_FileType(Aspose::Pdf::ImageFileType::Dicom);

    page->get_Paragraphs()->Add(image);

    // Save output as PDF format
    document->Save(_dataDir + outfilename);
    std::clog << "DICOM to PDF convert: Finish" << std::endl;
}

EMF を PDF に変換

EMFEMF は、グラフィカルな画像をデバイスに依存せずに保存します。EMF のメタファイルは、任意の出力デバイスで解析後に保存された画像をレンダリングできるように、時系列順の可変長レコードで構成されています。さらに、以下の手順を使用して EMF を PDF 画像に変換できます:

  1. パス名とファイル名のためのString クラスを作成します。
  2. 新しい Document オブジェクトのインスタンスを作成します。
  3. このDocumentに新しいページを追加します。
  4. 新しい Aspose.Pdf TIFF が作成されます。
  5. Aspose.PDF TIFF オブジェクトは入力ファイルを使用して初期化されます。
  6. Aspose.PDF TIFF は段落としてページに追加されます。
  7. 入力画像ファイルを読み込み、保存します。

さらに、以下のコードスニペットは、C++ で EMF を PDF に変換する方法を示しています:

void ConvertEMFtoPDF() 
{
    std::clog << "EMF to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.emf");
    String outfilename("ImageToPDF_emf.pdf");

    auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
    auto myimage = MakeObject<System::Drawing::Bitmap>(fileStream);

    auto document = MakeObject<Document>();
    auto page = document->get_Pages()->Add();

    auto currentImage = MakeObject<System::IO::MemoryStream>();
    myimage->Save(currentImage, System::Drawing::Imaging::ImageFormat::get_Tiff());

    auto imageht = MakeObject<Aspose::Pdf::Image>();
    imageht->set_ImageStream(currentImage);
    page->get_Paragraphs()->Add(imageht);

    document->Save(_dataDir + outfilename);

    std::clog << "EMF to PDF convert: Finish" << std::endl;
}

JPG を PDF に変換

JPG を PDF に変換する方法に悩む必要はありません。なぜなら、Aspose.PDF for C++ ライブラリが最適な解決策を提供するからです。

Aspose.PDF for C++ を使用して、次の手順で JPG 画像を PDF に非常に簡単に変換できます。

  1. パス名とファイル名のために String クラス を作成します。
  2. 新しい Document オブジェクトのインスタンスが作成されます。
  3. この Document に新しいページを追加します。
  4. 新しい Aspose::Pdf::Image が作成されます。
  5. Aspose.PDF Image オブジェクトは、入力ファイルを使用して初期化されます。
  6. Aspose.PDF Imageは、段落としてページに追加されます。
  7. 入力画像ファイルをロードして保存します。

以下のコードスニペットは、C++を使用してJPG画像をPDFに変換する方法を示しています:

void ConvertJPEGtoPDF() 
{
    std::clog << "JPEG to PDF convert: Start" << std::endl;
    // パス名のための文字列
    String _dataDir("C:\\Samples\\Conversion\\");

    // 入力ファイル名のための文字列
    String infilename("sample.jpg");

    // 出力ファイル名のための文字列
    String outfilename("ImageToPDF-JPEG.pdf");

    // ドキュメントを開く
    auto document = MakeObject<Document>();

    // 空のドキュメントに空のページを追加
    auto page = document->get_Pages()->Add();
    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // ページに画像を追加
    page->get_Paragraphs()->Add(image);

    // 出力ドキュメントを保存
    document->Save(_dataDir + outfilename);
    std::clog << "JPEG to PDF convert: Finish" << std::endl;
}

次に、ページの高さと幅が同じ画像をPDFに変換する方法を確認できます。 画像の寸法を取得し、それに応じてPDFドキュメントのページ寸法を設定する手順は以下の通りです。

  1. 入力画像ファイルを読み込む
  2. 画像の高さと幅を取得する
  3. ページの高さ、幅、および余白を設定する
  4. 出力PDFファイルを保存する

以下のコードスニペットは、C++を使用して同じページの高さと幅で画像をPDFに変換する方法を示しています。

void ConvertJPGtoPDF_fitsize() 
{
    std::clog << "JPEG to PDF convert: Start" << std::endl;
    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.jpg");

    // String for input file name
    String outfilename("ImageToPDF-JPG.pdf");

    // Open document
    auto document = MakeObject<Document>();

    // Add empty page in empty document
    auto page = document->get_Pages()->Add();
    auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
    auto bitMap = MakeObject<System::Drawing::Bitmap>(fileStream);


    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Add image on a page
    page->get_Paragraphs()->Add(image);

    // Set page dimensions and margins
    page->get_PageInfo()->set_Height(bitMap->get_Height());
    page->get_PageInfo()->set_Width(bitMap->get_Width());
    page->get_PageInfo()->get_Margin()->set_Bottom(0);
    page->get_PageInfo()->get_Margin()->set_Top(0);
    page->get_PageInfo()->get_Margin()->set_Right(0);
    page->get_PageInfo()->get_Margin()->set_Left(0);
    page->get_Paragraphs()->Add(image);

    // Save output document
    document->Save(_dataDir + outfilename);
    std::clog << "JPEG to PDF convert: Finish" << std::endl;
}

PNGをPDFに変換する

**Aspose.PDF for C++**は、PNG画像をPDF形式に変換する機能をサポートしています。次のコードスニペットを確認してタスクを実現してください。

PNGは、ロスレス圧縮を使用するラスター画像ファイル形式の一種であり、そのため利用者の間で人気があります。

以下の手順を使用してPNGをPDF画像に変換できます:

  1. パス名とファイル名のためのString Classを作成します。
  2. 新しいDocumentオブジェクトのインスタンスを作成します。
  3. 新しいページをこのドキュメントに追加します。
  4. 新しいAspose.Pdf PNGが作成されます。
  5. 入力ファイルを使用してAspose.PDF PNGオブジェクトが初期化されます。
  6. Aspose.PDF PNGがページに段落として追加されます。
  7. 入力画像ファイルをロードして保存します。

さらに、以下のコードスニペットは、C++アプリケーションでPNGをPDFに変換する方法を示しています。

void ConvertPNGtoPDF() 
{
    std::clog << "PNG to PDF convert: Start" << std::endl;
    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.png");

    // String for input file name
    String outfilename("ImageToPDF-PNG.pdf");

    // Open document
    auto document = MakeObject<Document>();

    // Add empty page in empty document
    auto page = document->get_Pages()->Add();
    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Add image on a page
    page->get_Paragraphs()->Add(image);

    // Save output document
    document->Save(_dataDir + outfilename);
    std::clog << "PNG to PDF convert: Finish" << std::endl;
}

SVGをPDFに変換

**Aspose.PDF for C++**は、SVG画像をPDF形式に変換する方法と、ソースSVGファイルの寸法を取得する方法を説明します。

スケーラブルベクターグラフィックス(SVG)は、2次元のベクターグラフィックス、静的および動的(インタラクティブまたはアニメーション)のためのXMLベースのファイル形式の仕様ファミリーです。SVG仕様は、1999年以降、ワールドワイドウェブコンソーシアム(W3C)によって開発されているオープンスタンダードです。

SVG画像とその動作は、XMLテキストファイルで定義されています。 これは、検索、インデックス化、スクリプト化され、必要に応じて圧縮されることを意味します。XMLファイルとして、SVG画像は任意のテキストエディタで作成および編集できますが、Inkscapeなどの描画プログラムで作成する方が便利です。

  1. パス名とファイル名のためのString Classを作成します。
  2. SvgLoadOptionsクラスのインスタンスを作成します。
  3. ソースファイル名とオプションを指定してDocumentクラスのインスタンスを作成します。
  4. 希望のファイル名でドキュメントを保存します。

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

void ConvertSVGtoPDF() 
{
    std::clog << "SVG to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.svg");
    String outfilename("ImageToPDF-SVG.pdf");

    auto options = MakeObject<SvgLoadOptions>();
    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 << "SVG to PDF convert: Finish" << std::endl;
}

高機能を備えた例を考えてみましょう:

void ConvertSVGtoPDF_Advanced()
{
    std::clog << "SVG to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("Sweden-Royal-flag-grand-coa.svg");
    String outfilename("ImageToPDF-SVG.pdf");

    auto options = MakeObject<SvgLoadOptions>();
    options->set_AdjustPageSize(true);
    options->ConversionEngine = SvgLoadOptions::ConversionEngines::NewEngine;

    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 << "SVG to PDF convert: Finish" << std::endl;
}

TIFFをPDFに変換

Aspose.PDF ファイル形式は、単一フレームまたはマルチフレームのTIFF画像をサポートしています。つまり、C++アプリケーションでTIFF画像をPDFに変換することができます。

TIFFまたはTIF、タグ付き画像ファイル形式は、このファイル形式の標準に準拠するさまざまなデバイスでの使用を目的としたラスター画像を表します。TIFF画像には、異なる画像の複数のフレームを含めることができます。Aspose.PDFファイル形式もサポートされており、単一フレームまたはマルチフレームのTIFF画像を処理できます。そのため、C++アプリケーションでTIFF画像をPDFに変換することができます。したがって、以下のステップを使用して、マルチページのTIFF画像をマルチページのPDFドキュメントに変換する例を考えてみます:

  1. パス名とファイル名のためにString Classを作成します。
1. この[Document](https://reference.aspose.com/pdf/cpp/class/aspose.pdf.document)に新しいページを追加します。
1. 新しいAspose.Pdf TIFFが作成されます。
1. Aspose.PDF TIFFオブジェクトは入力ファイルを使用して初期化されます。
1. Aspose.PDF TIFFは段落としてページに追加されます。
1. 入力画像ファイルを読み込み、保存します。

さらに、以下のコードスニペットは、複数ページまたは複数フレームのTIFF画像をC++でPDFに変換する方法を示しています。