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

Reply via email to