What version and code did you use? I used this:
import java.io.IOException;
import java.net.URL;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.font.PDFont;
public class Buir
{
public static void main(String[] args) throws IOException
{
PDDocument doc = PDDocument.load(new
URL("http://www.buir.de/ABCD.pdf").openStream());
PDPage page = doc.getPage(0);
PDFont font =
page.getResources().getFont(COSName.getPDFName("F1"));
float w = font.getStringWidth("%");
System.out.println("w: " + w);
doc.close();
}
}
output:
w: 833.0
Tilman
Am 06.06.2016 um 08:17 schrieb Croe.David:
Hi,
this is a pretty simple example created with powerpoint:
it displays the '%' Sign but pdfbox isn't able to calculate the width:
http://www.buir.de/ABCD.pdf
best regards,
David
-----Ursprüngliche Nachricht-----
Von: John Hewson [mailto:[email protected]]
Gesendet: Dienstag, 31. Mai 2016 17:21
An: [email protected]
Betreff: Re: unable to calculate text width
On 30 May 2016, at 23:57, Croe.David <[email protected]> wrote:
Thanks for reply,
the pdf looks correct in pdf debugger and reader, thus if it can display the
"%" sign why pdfbox can't calculate the width ?
It lacks a part in the puzzle.
How to determine if it’s a subset ?
The toUnicode seems to have the character "%" .. 0025 ...
<0001> <0024> [<0025> <004E> <0041> <004D> <0045> <003A> <0043> <0054>
Hmm, post the PDF online somewhere and I’ll take a look.
thanks,
David
-----Ursprüngliche Nachricht-----
Von: John Hewson [mailto:[email protected]]
Gesendet: Montag, 30. Mai 2016 18:52
An: [email protected]
Betreff: Re: unable to calculate text width
On 25 May 2016, at 01:14, Croe.David <[email protected]> wrote:
Dear all,
i'm trying to replace and center a text in a pdf which has been created by
phantomjs.
I'm not sure if it's a problem within phantomjs or pdfbox, but I get following
exception while calculating the text width of a string starting with Symbol %:
Exception in thread "main" java.lang.IllegalArgumentException: No glyph for
U+0025 in font TimesNewRomanStandard
at
org.apache.pdfbox.pdmodel.font.PDCIDFontType2.encode(PDCIDFontType2.java:411)
at org.apache.pdfbox.pdmodel.font.PDType0Font.encode(PDType0Font.java:351)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286)
at
org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:315)
in PDCIDFontType2:
isEmbedded is true
parent.getCMap().getName() is Identity-H cmap is null cid is -1
a closer look with pdfdebugger , this is the toUnicode:
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo << /Registry (Adobe) /Ordering (UCS) /Supplement 0 >>
def /CMapName /Adobe-Identity-UCS def /CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
2 beginbfrange
<0000> <0000> <0000>
<0001> <0024> [<0025> <004E> <0041> <004D> <0045> <003A> <0043>
<0054> <0052> <0062> <0065> <0073> <0074> <0061> <006E> <0064> <0020>
<006D> <0069> <0066> <006F> <006C> <0067> <0072> <0050> <0075> <006B>
<007A> <0068> <0055> <004B> <0044> <00FC> <0042> <0079> <0070> ]
endbfrange endcmap CMapName currentdict /CMap defineresource pop end
end
how to calculate the width or fix the problem ?
As Tilman has suggested, this font is likely a subset and does not contain that
symbol. You may be able to configure phantoms to not subset fonts, I believe
that it uses CUPS-PDF for this.
— John
best regards,
David Croé
____________________________________________________________
[https://www.inside-online.de/mail/footer/anbieter_des_jahres.jpg]<ht
t
p://www.inside-online.de/de/pressemeldungen-news/anbieter-des-jahres-
2
016.html?utm_source=Signatur&utm_medium=E-Mail&utm_campaign=Signatur-
A
nbieter-des-Jahres> Danke an unsere Kunden für die Wahl zum Anbieter
des Jahres 2016!
Kontaktieren Sie uns
hier<http://www.inside-online.de/de/kontaktieren.html?utm_source=Signatur&utm_medium=E-Mail&utm_campaign=Signatur-Anbieter-des-Jahres>
und erfahren Sie, warum uns unsere Kunden zum Anbieter des Jahres gewählt haben.
Gerne sprechen wir auch über Ihr E-Learning-Projekt!
____________________________________________________________
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]