Hi, How it looks with this bug?
On Sat, Jun 1, 2019 at 9:22 PM Michal Sudolsky <sudols...@gmail.com> wrote: > I am sending test case: > > ``` > > PdfMemDocument doc; > PdfPage *page = doc.CreatePage({0, 0, 500, 800}); > PdfFont *font = doc.CreateFont("Verdana", false, false, false, > PdfEncodingFactory::GlobalWin1250EncodingInstance()); > PdfPainter p; > p.SetPage(page); > p.SetFont(font); > p.DrawText(10, 780, (const pdf_utf8*)"ČŘĎ"); > p.FinishPage(); > doc.Write("doc.pdf"); > printf("Width of 'ČŘĎ' using newly created font is: %f\n", > font->GetFontMetrics()->StringWidth((const pdf_utf8*)"ČŘĎ")); > > PdfMemDocument doc2("doc.pdf"); > PdfPage *page2 = doc2.GetPage(0); > PdfFont *font2 = doc2.GetFont(page2->GetFromResources("Font", > font->GetIdentifier())); > PdfPainter p2; > p2.SetPage(page2); > p2.SetFont(font2); > p2.DrawText(10, 760, (const pdf_utf8*)"ČŘĎ"); > p2.FinishPage(); > doc2.Write("doc2.pdf"); > printf("Width of 'ČŘĎ' using loaded font is: %f\n", > font2->GetFontMetrics()->StringWidth((const pdf_utf8*)"ČŘĎ")); > > ``` > > > This gives incorrect width and also doc2.pdf does not contain second text. > > Width of 'ČŘĎ' using newly created font is: 25.968750 > Width of 'ČŘĎ' using loaded font is: 36.000000 > > On Tue, May 7, 2019 at 4:56 PM Matthias Brinke <ma...@mailbox.org> wrote: > >> [typos & wrapping fixed in quoted text] >> Hello Michal, hello all, >> >> > On 09 December 2018 at 17:19 Michal Sudolsky <sudols...@gmail.com> >> wrote: >> > >> > Hi, >> > Yes, it is usable rather with non-subset fonts. Whether a font is >> subset or >> > not can be detected. Also it should be possible to check which >> characters are >> > in a subset for example from weights (at worst from the embedded font >> file). >> > >> >> I think this detection could be implemented later, i.e. I don't think it's >> necessary for acceptance of the patch. >> >> > One use case of this is to fill existing acroforms and construct >> appearance >> > streams. It looks better and more uniform across viewers than to use >> > "NeedAppearances". It would not be very reasonable to use a subset font >> for >> > editable text fields. >> > Also the StringWidth function will probably not work due to this bug. >> Let's >> > say you want to extend the podofo text extraction utility to print also >> the >> > bounding box of text elements in addition to position. You will get >> wrong >> > string widths and bounding boxes due to this bug. This use case is >> reasonable >> > also for subset fonts. >> >> This sounds very interesting, even though I don't think it'll be >> implemented >> in PoDoFo before next release (it's a new feature and there are still >> bugs to >> fix before). >> >> > All bug reports which I sent are based on some real use case. >> >> Could you please post such a test case, ideally minimal, as an attachment >> to >> answer this? >> >> > This is a bug and should be fixed. There is a function which lazily >> > initialises the data structure which it uses and another function which >> does >> > not. It can be fixed also by lazy initialisation in that other function. >> > I just proposed a fix which I supposed is a better and simpler option. >> >> I also think that the simpler fix should be preferred and apologize for >> only >> coming around to this now. I'll test this and if all checks out, accept >> it, >> shortly after getting a (more or less) minimal test case. Thanks in >> advance. >> >> Best regards, mabri >> >> > >> > On Sat, Dec 8, 2018 at 7:13 AM zyx < z...@gmx.us> wrote: >> > > On Mon, 2018-12-03 at 23:06 +0100, Michal Sudolsky wrote: >> > > > The best is to initialise it during creation of >> > > > PdfDifferenceEncoding. And only place which creates >> > > > PdfDifferenceEncoding is "PdfFont* PdfMemDocument::GetFont( >> > > > PdfObject* pObject )". >> > > >> > > Hi, >> > > this would not help with subset fonts, because they do not contain >> all >> > > the characters of the original font, right? I'm wondering how much >> > > sense that would make to reuse partial font of the existing file. I >> > > mean, there are situations where it does make sense, but also those >> > > where not. It might be up to the library user to decide, while there >> is >> > > not much way to give a hint to the user when it makes (or rather does >> > > not make) sense to do it. Or am I missing anything here? >> > > Bye, >> > > zyx >> > > >> >> >> _______________________________________________ >> Podofo-users mailing list >> Podofo-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/podofo-users >> >
_______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users