You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Juho Terrijärvi <Ju...@auramarine.com> on 2015/01/09 09:35:22 UTC

String draw unicode or UTF-8

Hey all,

I'm using pdfbox 1.8.8 and trying to write unicode or UTF-8 with Cyrillic alphabets. The bookmarks work correct:

PDOutlineItem subHeading = new PDOutlineItem();
subHeading.setTitle(allDocsToAddExp[i]);
page = (PDPage)pages.get( num );
dest = new PDPageFitWidthDestination();
subHeading.setDestination( dest );
dest.setPage( page );
heading.appendChild( subHeading );

But when I write to the document with:

// append the content to the existing stream
PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true, true);
contentStream.beginText();
// set font and font size
contentStream.setFont( PDType1Font.TIMES_ROMAN, 10f );
// set text color
contentStream.setNonStrokingColor(0, 0, 0);
if (rotate)
{
// rotate the text according to the page rotation
            contentStream.setTextRotation(Math.PI/2, x, y);
}
else
{
            contentStream.setTextTranslation(x, y);
}
contentStream.drawString(message);
contentStream.endText();
contentStream.close();

This only produces þÿ
________________________________
@
________________________________
0
________________________________
1
________________________________
>
________________________________
B
________________________________
0

What could be the problem?

Best,

Juho

Ps. I find your work amazing! With pdfbox I can do the months work I did before in a day. So pdfbox has made it possible for me to spend 19 days in a month in more rational things.

Re: String draw unicode or UTF-8

Posted by John Hewson <jo...@jahewson.com>.
Hi Juho

This isn’t supported in 1.8 but the 2.0 trunk version supports embedding TTF fonts using Unicode.
Follow the instruction on our website for build from source or downloading a snapshot.

Once you have 2.0, follow this example:

https://github.com/apache/pdfbox/blob/trunk/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/EmbeddedFonts.java

-- John

> On 9 Jan 2015, at 00:35, Juho Terrijärvi <Ju...@auramarine.com> wrote:
> 
> Hey all,
> 
> I'm using pdfbox 1.8.8 and trying to write unicode or UTF-8 with Cyrillic alphabets. The bookmarks work correct:
> 
> PDOutlineItem subHeading = new PDOutlineItem();
> subHeading.setTitle(allDocsToAddExp[i]);
> page = (PDPage)pages.get( num );
> dest = new PDPageFitWidthDestination();
> subHeading.setDestination( dest );
> dest.setPage( page );
> heading.appendChild( subHeading );
> 
> But when I write to the document with:
> 
> // append the content to the existing stream
> PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true, true);
> contentStream.beginText();
> // set font and font size
> contentStream.setFont( PDType1Font.TIMES_ROMAN, 10f );
> // set text color
> contentStream.setNonStrokingColor(0, 0, 0);
> if (rotate)
> {
> // rotate the text according to the page rotation
>            contentStream.setTextRotation(Math.PI/2, x, y);
> }
> else
> {
>            contentStream.setTextTranslation(x, y);
> }
> contentStream.drawString(message);
> contentStream.endText();
> contentStream.close();
> 
> This only produces þÿ
> ________________________________
> @
> ________________________________
> 0
> ________________________________
> 1
> ________________________________
>> 
> ________________________________
> B
> ________________________________
> 0
> 
> What could be the problem?
> 
> Best,
> 
> Juho
> 
> Ps. I find your work amazing! With pdfbox I can do the months work I did before in a day. So pdfbox has made it possible for me to spend 19 days in a month in more rational things.