PoDoFo库C++将文本擦亮为pdf

问题描述:

This solution 对我不起作用。 有没有其他的选择?PoDoFo库C++将文本擦亮为pdf

编辑

我有这样的:

string font = "resources//fonts//FreeSans.ttf"; 
PdfStreamedDocument document(output_pdf_name.c_str()); 
PdfPainter painter; 
PdfPage* page; 
page = document.CreatePage(PdfPage::CreateStandardPageSize(ePdfPageSize_A4)); 
painter.SetPage(page); 
const PdfEncoding *pEncoding = PdfEncodingFactory::GlobalIdentityEncodingInstance(); 
PdfFont *f1 = document.CreateFont(font.c_str(), true, true, pEncoding); 

PdfString eNtext("English text"); 
PdfString pLtext("Łódź stół"); 

painter.SetFont(f1); 
painter.DrawText(100.0, page->GetPageSize().GetHeight() - 100.0, eNtext); 
painter.DrawText(100.0, page->GetPageSize().GetHeight() - 150.0, pLtext); 
painter.FinishPage(); 
document.Close(); 

,我看到这个输出PDF

Image1

如果我设置

string font = "resources//fonts//FreeSans.ttf"; 
PdfFont *f1 = document.CreateFont(font.c_str()); 
PdfString pLtext("\u0141\u00F3d\u017A st\u00F3\u0142"); 

Image3

希望,这将有助于找到答案。

+0

可能重复的[生成PDF时无法获得捷克字符](http://stackoverflow.com/questions/26631815/cant-get-czech-characters-while-generating-a-pdf) –

+0

@TadeuszKopec我怀疑一个用于C#的PDF库的问题真的可以被认为是与C++一起使用的不同PDF库的重复,即使可能下面的原因是相似的。但由于OP很难提供任何信息,所以很难说出任何内容。 – mkl

+0

Fryderyk,如果您真的需要帮助,请首先提供有关您问题的足够信息。它甚至不清楚你的实际问题是什么,“对我不起作用”可能意味着什么,可能每次你尝试你的CPU爆炸... – mkl

此代码的工作对我来说:

PdfStreamedDocument document(output_pdf_name.c_str()); 
PdfPainter painter; 
PdfPage* page; 
page = document.CreatePage(PdfPage::CreateStandardPageSize(ePdfPageSize_A4)); 
painter.SetPage(page); 

PdfString eNtext("English text"); 
PdfString pLtext(L"Łódź stół"); 
PdfFont* pFont = document.CreateFont("TIMES NEW ROMAN", false, new PdfIdentityEncoding(0, 0xffff, true)); 


painter.SetFont(pFont); 
painter.DrawText(100.0, page->GetPageSize().GetHeight() - 100.0, eNtext); 
painter.DrawText(100.0, page->GetPageSize().GetHeight() - 150.0, pLtext); 
painter.FinishPage(); 
document.Close(); 

这是最重要的部分:

PdfString pLtext(L"Łódź stół"); 
PdfFont* pFont = document.CreateFont("TIMES NEW ROMAN", false, new PdfIdentityEncoding(0, 0xffff, true)); 

最好的问候!