私はitextを使用して文書を読み込み、その中の文字列を置き換えようとしています。しかし、いったん操作されると、すべてのスペイン語文字が迷惑な文字になります。以下は、pdfを変更するためのコードです。実際のPDFでIText - PdfDictionaryとPDF Stamperを使用してスペイン語の文書を編集する
PdfReader reader = new PdfReader(src);
PdfDictionary dict = reader.getPageN(1);
PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
if (object instanceof PRStream) {
PRStream stream = (PRStream) object;
byte[] data = PdfReader.getStreamBytes(stream);
String dataString = new String(data);
dataString = dataString.replace(sourceString, replacementString);
stream.setData(dataString.getBytes("UTF-8"));
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
私は、「第20回ストリート」に置き換えています文字列$ {アドレス線1}があり
これは、ストリーム
にあるこのスペイン語ではなく動作しますDocumentaciónはDocumentaci�nになります
他のスペイン語でも同じです。
また、Javaコンソールでbytes []を表示して、読み込み自体がその文字を正しく取得しないことがわかりました。
提案がありますか?
が++ 1を行うことはできませんが、これは私のために働い::: 文字列dataString =新しい文字列(データを、 "ISO-8859-1"); dataString = dataString。置き換え(sourceString、replacementString); stream.setData(dataString.getBytes( "ISO-8859-1")); – SaChi
良いあなたのPDFのプロデューサーが変わると、あなたのコードが突然動作を停止するかもしれません。ちなみに、あなたは実際には* upvote *できませんが、あなたは*受け入れることができます*投票の矢印のすぐ下に、左上のダニをクリックします。 – mkl
私は自分自身でITextからpdfを作成していますが、テキストを変更してどこに行かれたのかはわかりませんので、私はこの場合プロデューサとコンシューマです:) – SaChi