第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JAVA 搜索和替換 PDF 中的文本

使用 JAVA 搜索和替換 PDF 中的文本

慕妹3146593 2021-08-13 15:40:47
需要用不同的語言替換pdf中的文本。在第一步中,我嘗試使用 itextpdf ad pdfbox API 搜索和替換 pdf 文件中的文本。使用下面的代碼片段,它使用 itextpdf api 從源 PDF 文件中搜索文本“Hello”并將其替換為“Hi”。創(chuàng)建新 PDF 時沒有任何文本替換。public void manipulatePdf(String src, String dest) throws Exception {    PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(DEST));    int noOfPages = pdfDoc.getNumberOfPages();    for (int i = 1; i < noOfPages; i++) {        PdfPage page = pdfDoc.getPage(i);        PdfDictionary dict = page.getPdfObject();        PdfObject object = dict.get(PdfName.Contents);        if (object instanceof PdfStream) {            PdfStream stream = (PdfStream) object;            byte[] data = stream.getBytes();            stream.setData(new String(data).replace("Hello", "Hi").getBytes("UTF-8"));        }    }    pdfDoc.close();}還使用 apache pdfbox 來實現(xiàn)相同的目的,但沒有運氣。下面是參考的代碼片段。    public static PDDocument replaceText(PDDocument document, String searchString, String replacement)        throws IOException {            for (PDPage page : document.getPages()) {        PDFStreamParser parser = new PDFStreamParser(page);        parser.parse();        List tokens = parser.getTokens();        for (int j = 0; j < tokens.size(); j++) {            Object next = tokens.get(j);            if (next instanceof Operator) {                Operator op = (Operator) next;                // Tj and TJ are the two operators that display strings in a PDF                if (op.getName().equals("Tj")) {                    // Tj takes one operator and that is the string to display                    // so lets update that operator                    COSString previous = (COSString) tokens.get(j - 1);                    String string = previous.getString();                    //System.out.println(new String(string.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8));                    string = string.replaceFirst(searchString, replacement);                    previous.setValue(string.getBytes());                } 任何解決方案/建議都受到高度贊賞。
查看完整描述

2 回答

  • 2 回答
  • 0 關(guān)注
  • 1048 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號