Return-Path: X-Original-To: apmail-pdfbox-dev-archive@www.apache.org Delivered-To: apmail-pdfbox-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8BE6018BF0 for ; Tue, 1 Dec 2015 17:52:16 +0000 (UTC) Received: (qmail 30250 invoked by uid 500); 1 Dec 2015 17:52:11 -0000 Delivered-To: apmail-pdfbox-dev-archive@pdfbox.apache.org Received: (qmail 30216 invoked by uid 500); 1 Dec 2015 17:52:11 -0000 Mailing-List: contact dev-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list dev@pdfbox.apache.org Received: (qmail 30194 invoked by uid 99); 1 Dec 2015 17:52:11 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Dec 2015 17:52:11 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 010672C1F6C for ; Tue, 1 Dec 2015 17:52:11 +0000 (UTC) Date: Tue, 1 Dec 2015 17:52:11 +0000 (UTC) From: "John Hewson (JIRA)" To: dev@pdfbox.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (PDFBOX-3138) PDTextField doesn't accept any Hebrew characters as new value MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/PDFBOX-3138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15034181#comment-15034181 ] John Hewson edited comment on PDFBOX-3138 at 12/1/15 5:51 PM: -------------------------------------------------------------- If you can embed the font as a CIDFontType0 instead of Type1 then PDFBox will be able to find the Hebrew glyphs. Failing that, try creating the field with some placeholder Hebrew text in it - that might trigger Type 0 font embedding. Once you have that working, you'll need to reorder the Hebrew string visually before embedding it in the PDF, as PDFBox doesn't know about RTL. Java's [Bidi|http://docs.oracle.com/javase/7/docs/api/java/text/Bidi.html] class has a method which can do this for you. Alternatively, try setting PDAcroForm#setNeedAppearances(true) which bypasses PDFBox appearance generation and lets the viewer generate their own appearance for the field - however this can be incompatible with some viewers. was (Author: jahewson): If you can embed the font as a CIDFontType0 instead of Type1 then PDFBox will be able to find the Hebrew glyphs. Failing that, try creating the field with some placeholder Hebrew text in it - that might trigger Type 0 font embedding. Once you have that working, you'll need to reorder the Hebrew string visually before embedding it in the PDF, as PDFBox doesn't know about RTL. Java's [Bidi|http://docs.oracle.com/javase/7/docs/api/java/text/Bidi.html] class has a method which can do this for you. You'll have to draw the RTL strings glyph-by-glyph in reverse. > PDTextField doesn't accept any Hebrew characters as new value > ------------------------------------------------------------- > > Key: PDFBOX-3138 > URL: https://issues.apache.org/jira/browse/PDFBOX-3138 > Project: PDFBox > Issue Type: Bug > Components: AcroForm, FontBox > Affects Versions: 2.0.0 > Environment: Eclipse 4.2.2, Windows 7 Pro, JRE 1.8.0_05 > Reporter: Gilad Denneboom > Fix For: 2.1.0 > > Attachments: SetHebrewFieldValueTest.java, Test-3-filled.pdf, Test.pdf, Test.txt > > > Trying to set a UTF-8 encoded Hebrew string as the value of a PDTextField fails with the following exception: > {code} > Exception in thread "main" java.lang.IllegalArgumentException: No glyph for U+05D7 in font AdobeHebrew-Regular > at org.apache.pdfbox.pdmodel.font.PDType1CFont.encode(PDType1CFont.java:300) > at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:283) > at org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:341) > at org.apache.pdfbox.pdmodel.interactive.form.PlainTextFormatter.format(PlainTextFormatter.java:213) > at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.insertGeneratedAppearance(AppearanceGeneratorHelper.java:373) > at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:237) > at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:144) > at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:263) > at org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:221) > at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:218) > at SetHebrewFieldValueTest.main(SetHebrewFieldValueTest.java:22) > {code} > I've tried using multiple fonts for the field, all of which can handle Hebrew characters just fine, and got the same results in all of them. > See attached files for a demonstration of the issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org For additional commands, e-mail: dev-help@pdfbox.apache.org