Ich muss einen bestimmten Hyperlink in mehreren PDF-Seiten ersetzen, die Bilder, Links, Absatztexte usw. hat. Ich bin in der Lage, die Anmerkungen zu ändern, aber nicht den entsprechenden Linktext. Hier ist der Code so weitSo ersetzen Sie Hyperlink-Text in PDF mit ITEXT
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
PdfArray array = reader.getPageN(i).getAsArray(PdfName.ANNOTS);
if (array == null) continue;
for (int j = 0; j < array.size(); j++) {
PdfDictionary annot = array.getAsDict(j);
PdfDictionary link = (PdfDictionary)reader.getPdfObjectRelease(annot);
if(i==1 && j==0 || i==2 && j==0 || i==3 && j==0 || i==4 && j==0 || i==4 && j==1){
link.put(PdfName.A, new PdfAction(newurl));
}
}
}
habe ich versucht, den Link-Text ersetzt den Code unten verwenden, aber es ist nicht vorhanden scheint in den Stream-Bytes zu sein.
PdfObject object = dict.getDirectObject(PdfName.CONTENTS);
if (object instanceof PRStream) {
PRStream stream = (PRStream)object;
byte[] data = PdfReader.getStreamBytes(stream);
stream.setData(new String(data).replace(oldstring, newstring).getBytes());
}
Auch hat der Link-Text unterstrichen
Sie finden die Textstelle mit Hilfe von Text-Extraktionsmechanismen, dann den ursprünglichen Link mit einem weißen Rechteck abdecken (oder entfernen Sie es mit PDF-Bereinigung), und schließlich den neuen Link an der Position schreiben. – mkl
Ich konnte den Text und das Cover finden, aber die Anmerkung darunter wird nicht vollständig entfernt. Versucht mit 'link.remove (PdfName.A);' – Emerald
Können Sie mir bitte helfen mit Code – Emerald