PDF Tools ホーム > PDF Tools ライト > PDF Image-LP概要 > C#サンプル > 画像変換時のフォント代替サンプル

PDF Imager-LP 画像変換時のフォント代替 C#サンプル

PDF Imager-LPは、PDF文書を画像(TIFF、JPEG、PNG)に変換するライブラリです。
機能を限定してお求めやすくしました。 (PDF Imager-LP概要はこちらです。)

PDF Imager-LP 購入(価格)


ここでは、PDFに指定されたフォントを別のフォントで代替指定するサンプルを示します。
フォント指定時にフォントの太さ(font weight)や斜体(font style)などを指定できます。


他の開発言語によるサンプル:
 VB.NET画像変換のフォント代替サンプル、
 VB6.0画像変換のフォント代替サンプル、
 C++画像変換のフォント代替サンプル
 C#: 他のサンプル


ダウンロード:
PDF Imager-LPの無償体験版は、以下からダウンロードできます。無償体験版は、製品版と同じ機能が使えます。
利用許諾契約書をご確認のうえダウンロードしてください。ダウンロードしますと、利用許諾に同意したものとみなします。
評価利用では、ライセンスキーが必要ですので一緒にダウンロードしてください。


高機能な、画像変換ライブラリ「PDF to Image Converter」は、こちらです。

インストール

ライブラリは、無償でダウンロードおよび試用できます。 ダウンロードしてから、適当なフォルダーに解凍してください。 以下のようなフォルダーができますので適宜ご利用ください。

docライブラリ説明書、利用許諾契約書
includeC/C++用ヘッダー(.h)ファイル
VB6.0用モジュール
libDLLライブラリおよびLibファイル、JARファイル
sampleC#/VB.NET言語、C/C++言語、Visual Basic6.0サンプル、
Javaサンプル

サンプルの実行前に、lib/PdfImagerLPNET.dllを参照設定に追加し、lib/PdfImagerLP.dllを必要なフォルダーにコピーしてください。

画像変換時のフォントを代替するC#サンプルと解説

フォントが埋め込まれていないPDFを画像に変換する際、PDF指定フォントを別のフォントで代替するC#のサンプルコードです。 (C++サンプルはこちら)
PDF文書に埋め込まれたフォントを別のフォントで代替するサンプルこちらです。

以下のPDF文書の明朝フォントをゴシックフォントに替えて変換(変換された画像はこちら)します。

using System;
using PDFTools.PdfImagerLP;

namespace toJPEG
{
    class toJPEG
    {
        static void Main(string[] args)
        {
            //インスタンス生成
            PdfImager imgr = new PdfImager();

            //初期化
            if (imgr.Initialize("ライセンスキー") != 0)
            {
                Console.WriteLine("ライセンスキーが不正です。");
                Environment.Exit(2);
            }

            //初期化ファイル(省略可)
            //SetAlternateFont関数で直接の指定も可能
            imgr.LoadInitFile("init.xml");

            //フォントの代替
            //初期化ファイルでの指定も可
            imgr.SetAlternateFont("MS-PMincho", "MS ゴシック", 1);

            //オープン
            if (imgr.OpenDoc("in.pdf", null, null) != err.MLP_NO_ERROR)
            {
                Console.WriteLine("PDFファイルを開けません。");
                Environment.Exit(3);
            }

            //画像作成
            imgr.CreatePict(1, "out.jpg");      //先頭のページを画像に変換

            //文書クローズ
            imgr.CloseDoc();

            //後始末
            imgr.Uninitialize();
        }
    }
}
Initialize 初期化
引数にライセンスキーを指定します。ライセンスキーは、こちらからダウンロードしてください。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
LoadInitFile フォントの代替を指定
引数に代替するフォントを記述したXMLファイルを指定します。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
以下は、「MS 明朝」フォントを「MS ゴシック」に代替するXMLデータの具体例です。
<?xml version="1.0" encoding="shift_jis" ?>
<init>
 <fonts>
  <font org="MS-PMincho" alt="MS ゴシック" always="true" />
 </fonts>
</init>
SetAlternateFont PDFのフォントを代替
PDF文書に指定されたフォント名と代替するフォント名を指定します。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
引数に以下を指定します。
第一引数PDF文書に指定されたフォント名
第二引数代替するフォント名
第三引数0を指定すと第一引数で指定したフォントがシステムにインストールされている場合はそのフォントで画像に変換します。
1を指定すると第一引数に指定したフォントがシステムにインストールされている場合でも第二引数に指定したフォントを使って画像に変換します。
OpenDoc PDFファイルを開く
指定したファイルが画像への変換対象になります。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
引数に以下を指定します。
第一引数PDFファイル名
第二引数オーナーパスワード(パスワードで暗号化されている場合)、またはnull
第三引数ユーザーパスワード(パスワードで暗号化されている場合)、またはnull
CreatePict 指定されたページを画像に変換します。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
引数は以下を指定します。
第一引数PDF文書のページ番号(最初のページは1を指定します。)
第二引数結果を格納するファイル名を指定します。指定された拡張子によって画像形式が以下のように変わります。
拡張子画像形式
.pngPNG(Porable Network Graphics)形式
.jpegまたは.jpgJPEG(Joint Photographic Experts Group)形式
.tiffまたは.tifTIFF(Tagged Image File Format)形式
CloseDoc 開いたPDFファイルを閉じます。
Uninitialize 終了します。
変換結果:明朝フォントをゴシックフォントに代替

入力のPDF文書はこちらです。

画像への変換時に埋め込みフォントを代替するC#サンプル

フォントが埋め込まれてる場合でも、そのフォントを別のフォントで代替して画像に変換するC#のサンプルコードです。 (C++サンプルはこちら)

以下のPDF文書のメイリオフォント(サロゲートペア文字)を明朝フォントに替えて変換(変換された画像はこちら)します。

using System;
using PDFTools.PdfImagerLP;

namespace toJPEG
{
    class toJPEG
    {
        static void Main(string[] args)
        {
            //インスタンス生成
            PdfImager imgr = new PdfImager();

            //初期化
            if (imgr.Initialize("ライセンスキー") != 0)
            {
                Console.WriteLine("ライセンスキーが不正です。");
                Environment.Exit(2);
            }

            //フォントの代替
            //初期化ファイルでの指定も可
            imgr.SetAlternateFont2("Meiryo", "MS 明朝", "", "", 1, 1);

            //オープン
            if (imgr.OpenDoc("in.pdf", null, null) != err.MLP_NO_ERROR)
            {
                Console.WriteLine("PDFファイルを開けません。");
                Environment.Exit(3);
            }

            //画像作成
            imgr.CreatePict(1, "out.jpg");      //先頭のページを画像に変換

            //文書クローズ
            imgr.CloseDoc();

            //後始末
            imgr.Uninitialize();
        }
    }
}
SetAlternateFont2 PDFのフォントを代替
PDF文書に指定されたフォント名と代替するフォント名を指定します。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
引数に以下を指定します。
第一引数PDF文書に指定されたフォント名
第二引数代替するフォント名
第三引数代替するフォントの太さ(boldなど)
第四引数代替するフォントのスタイル(italicなど)
第五引数0を指定すると第一引数で指定したフォントがシステムにインストールされている場合はそのフォントで画像に変換します。
1を指定すると第一引数に指定したフォントがシステムにインストールされている場合でも第二引数に指定したフォントを使って画像に変換します。
第六引数0を指定すると第一引数で指定したフォントがPDF文書に埋め込まれている場合はそのフォントを使って画像に変換します。
1を指定すると第一引数に指定したフォントがPDF文書に埋め込まれている場合でも第二引数に指定したフォントを使って画像に変換します。
変換結果:メイリオフォントを明朝フォントに代替

入力のPDF文書はこちらです。

画像への変換時に大文字フォントに代替するC#サンプル

小文字のASCII文字を小さなサイズの大文字に替えて変換する画像に変換するC#のサンプルコードです。(C++サンプルはこちら)

以下のPDF文書のASCII文字("mager"部分)を小さな大文字に替えて変換(結果はこちら)します。

using System;
using PDFTools.PdfImagerLP;

namespace toJPEG
{
    class toJPEG
    {
        static void Main(string[] args)
        {
            //インスタンス生成
            PdfImager imgr = new PdfImager();

            //初期化
            if (imgr.Initialize("ライセンスキー") != 0)
            {
                Console.WriteLine("ライセンスキーが不正です。");
                Environment.Exit(2);
            }

            //初期化ファイル
            imgr.LoadInitFile("init.xml");

            //オープン
            if (imgr.OpenDoc("in.pdf", null, null) != err.MLP_NO_ERROR)
            {
                Console.WriteLine("PDFファイルを開けません。");
                Environment.Exit(3);
            }

            //画像作成
            imgr.CreatePict(1, "out.jpg");      //先頭のページを画像に変換

            //文書クローズ
            imgr.CloseDoc();

            //後始末
            imgr.Uninitialize();
        }
    }
}
LoadInitFile フォントの代替を指定
引数に代替するフォントを記述したXMLファイルを指定します。
成功すると、0(ゼロ)が戻ります。それ以外はエラーです。
以下は、Times New Romanフォントの小文字を小さな大文字フォントに代替するXMLデータの具体例です。
<?xml version="1.0" encoding="shift_jis" ?>
<init>
  <fonts>
    <font org="TimesNewRomanPSMT" alt="Times New Roman"
                        variant="small-caps" always="true" />
  </fonts>
</init>
変換結果: ASCIIの小文字を小さな大文字に代替

入力のPDF文書はこちらです。

エラー コード

以下のエラーコードが戻ります。

MLP_ALREADY_INITIALIZED既に初期化されています。
MLP_NOT_INITIALIZED初期化できない、もしくは、初期化していない場合。
MLP_INIT_FILE_OPEN_ERROR初期化ファイルを読めません。
MLP_LICENSE_ERROR不正なライセンスキーもしくは、評価用ライセンスキーの期限切れです。
MLP_ALREADY_OPENED既にPDF文書をオープンしています。
MLP_FILE_OPEN_ERROR指定のPDF文書をオープンできません。
MLP_FILE_IS_NOT_PDFPDF文書として解析できません。
MLP_FILE_NOT_DECRYPTEDPDF文書が暗号化されていますが、指定のパスワードでは復号できません。
MLP_FILE_NOT_OPENEDPDF文書がオープンされていません。
MLP_PDF_PARSE_ERRORPDFの解析中にエラーとなりました。
MLP_PDF_HAS_NOT_PAGE指定のPDF文書にはページがありません。
MLP_INVALID_PAGE_NUMBER指定したページの番号は無効です。
MLP_INVALID_RESOLUTION指定された解像度は無効です。
MLP_INVALID_QUALITY指定されたJPEG品質は無効です。
MLP_NO_OUTPUT_FILE出力ファイルが指定されていません。または、指定の出力ファイルの形式(拡張子)が無効です。
MLP_TOO_LARGE_PIXEL作成しようとしている画像が大きすぎます。
MLP_DRAW_ERROR画像作成用のメモリー領域を確保できません。

無償評価版およびサンプル

PDF Imager-LPの無償体験版は、以下からダウンロードできます。無償体験版は、製品版と同じ機能が使えます。
利用許諾をご確認のうえダウンロードしてください。ダウンロードしますと、利用許諾に同意したものとみなします。
評価利用では、ライセンスキーが必要ですので一緒にダウンロードしてください。


サンプル ソースコード

サンプルのソースコードは、以下をダウンロードしてください。(Visual Studio2008プロジェクト)

ご質問、お問い合わせ

メールで support@TrustSS.co.jp 宛てにお送りください。
または、質問のページからお送りいただくようお願いします。ご要望も承っております。




PDF Imager-LPサンプル

C++

C#

VB.NET

VB6.0