프로그래밍 방식으로 글꼴을 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를 다음 특성으로 출력합니다. 트루 타입 요구 사항을 얻지는 못했지만 아마도 올바른 방향으로 설정 될 것입니다.
여기서 paragraph
과 paragraph2
은 텍스트를 설정 한 후 글꼴을 설정하기 때문에 Helvetica가 기본 글꼴을 사용합니다. 질서가 중요합니다!
이 문서는 확실히 확대해야합니다 ...
이미 시도한 것을 보여주십시오. – kiziu
나는 고스트 스크립트를 통해 시험해 보았다. 가장 완벽한 스크립트는 내가 사용 : -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