Я создал шаблон в формате pdf с многострочным текстовым полем и должен установить некоторые арабские данные в Acrofields с помощью PDFStamper. Строка направления текста верна для первой строки, но она изменяется, когда происходит перенос текста.Обложка арабского текста с использованием Acrofields в Itext 5.5
Просим руководствоваться.
package test;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class TextFields{
public static final String RESULT1 = "D:/template.pdf";
public static final String RESULT2 = "D:/pdf/result.pdf";
protected int tf;
public TextFields(int tf) {
this.tf = tf;
}
public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
FontFactory.registerDirectories();
BaseFont unicode = null;
unicode = BaseFont.createFont("D:/arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
stamper.getAcroFields().addSubstitutionFont(unicode);
form.setField("TextBox","اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب اب");
stamper.close();
reader.close();
}
public static void main(String[] args) throws DocumentException, IOException {
TextFields example = new TextFields(0);
example.manipulatePdf(RESULT1, RESULT2);
}
}
Hi Bruno, Я пробовал решение, данное вами, но он не работает нормально для многострочного текста. Обертка не происходит, и текст обрезается до размера текстового поля. Кроме того, когда я делаю форму неинтерактивной, арабские данные в текстовом поле исчезают, пока он отлично работает для данных на английском языке. Обратите внимание. – aanchal