私はプログラムでPDFにフォントを追加(登録、埋め込み)する必要があります。 私はghostscriptやitextsharpのような多くのユーティリティを試しましたが、私は問題を解決できませんでした。このような状況で例えばC#プログラムでフォントをPDFに追加
私は宅配便-太字を追加して、この状況を取得したいと思います:
私はプログラムでPDFにフォントを追加(登録、埋め込み)する必要があります。 私はghostscriptやitextsharpのような多くのユーティリティを試しましたが、私は問題を解決できませんでした。このような状況で例えばC#プログラムでフォントをPDFに追加
私は宅配便-太字を追加して、この状況を取得したいと思います:
私はiTextSharpのV5を使用してプロジェクトを作成しました。 5.9 NuGet経由で、次のコードを使用しました。
const string PdfLocation = @"C:\fakepath\output.pdf";
static void Main(string[] args)
{
using (var pdfDoc = new Document())
using (var fs = new FileStream(PdfLocation, FileMode.OpenOrCreate))
using (var writer = PdfWriter.GetInstance(pdfDoc, fs))
{
pdfDoc.Open();
var font = FontFactory.GetFont(FontFactory.COURIER_BOLD);
// Doesn't use font
var paragraph = new Paragraph("LINE 1");
paragraph.Font = font;
pdfDoc.Add(paragraph);
// Doesn't use font
var paragraph2 = new Paragraph();
paragraph2.Add("LINE 2");
paragraph2.Font = font;
pdfDoc.Add(paragraph2);
// Does use font
var paragraph3 = new Paragraph();
paragraph3.Font = font;
paragraph3.Add("LINE 3"); // This must be done after setting the font
pdfDoc.Add(paragraph3);
var cb = writer.DirectContent;
pdfDoc.Close();
}
}
テキストを書き込む前にまずフォントを設定してください。次のコードは、PDFに以下のプロパティを出力します。私はこれからTrueType要件を取得しませんでしたが、おそらくこれは正しい方向にあなたを設定します。
paragraph
とparagraph2
を使用しているところでは、テキストを設定した後にフォントを設定しているため、私のHelveticaのデフォルトフォントを使用します。注文は問題です!
このドキュメントは、確かに展開する必要があります。
お試しください。お試しください。 – kiziu
私はghostscriptで試しました。 -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE = pdfwrite -dPDFSETTINGS = /プリンタ-dCompatibilityLevel = 1.4 -dSubsetFonts = true -dEmbedAllFonts = true -sFONTPATH = font_path.ttf -sOutputFile = pdf_out_path -f pdf_in_path 私はitextsharpライブラリでこの目的に役立つ何かを検索しましたが、何も見つかりませんでした。段落のフォントしか設定できないようです。 – user3492925
これはいくつかの助けになるかもしれません:http://stackoverflow.com/questions/4231656/how-do-i-embed-fonts-in-an-existing-pdf – kiziu