Hi Palmer, Attached is a patch for TrueType font sub-setting. Now you can use single byte encoding like WinAnsiEncoding. Difference encoding should work too.
Using a PdfString constructor with explicitly specified encoding is preferred way to supply text. Otherwise there can be surprises, as default string encoding (GlobalDocEncoding) might produce different unicode characters then WinAnsi or MacRoman encoding when you are using characters out of 0x20-0x7f range. I do not see any advantages of using single byte encoding instead of Identity, because if you would like to draw some strange characters from win-1250 code page like "scaron/ccaron" /* šč */, then you have to use differences anyway. const PdfEncoding* textEncoding = PoDoFo::PdfEncodingFactory::GlobalWinAnsiEncodingInstance(); fontEncoding = PoDoFo::PdfEncodingFactory::GlobalWinAnsiEncodingInstance(); pdfFont = pdf->CreateFontSubset(fontName, isBold, isItalic, false, fontEncoding, fontPath); pdfPainter.SetFont(pFont); pdfPainter.DrawText( x, y , PdfString("text encoded as WinAnsi", textEncoding);); PdfEncodingDifference diffs; diffs.AddDifference( 0x0041, 0, PdfName("a") ); diffs.AddDifference( 0x0061, 0, PdfName("A") ); PdfEncoding* diffEnc = new PdfDifferenceEncoding( diffs, PdfDifferenceEncoding::eBaseEncoding_WinAnsi, &pdfDoc, true ); pFont = pdfDoc.CreateFontSubset(fontName, isBold, isItalic, false, diffEnc); pdfPainter.SetFont(pFont); pdfPainter.DrawText( x, y , PdfString("abAB")); > > If I apply the patch and run the same test, the result is a corrupted PDF > file (according to Adobe Reader: Invalid font data). > > > fontEncoding = PoDoFo::PdfEncodingFactory::GlobalWinAnsiEncodingInstance(); > pdfFont = pdf->CreateFontSubset(fontName, isBold, isItalic, false, > fontEncoding, fontPath); > > > Do you think you could look into this?
subset2.patch.gz
Description: GNU Zip compressed data
------------------------------------------------------------------------------
_______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users