отключить ссылки com.itextpdf.text.Paragraph - PullRequest
0 голосов
/ 24 октября 2019

Проблема заключается в следующем, у меня есть метод для создания PDF, но когда я добавляю текст, который содержит ссылку, и я создаю файл PDF, он позволяет мне щелкнуть ссылку, в целях безопасности он не может иметь ссылки.

PdfReader reader = new PdfReader(new FileInputStream(new File("D:\\ruta\\\\basepdf.pdf"))); 
Document document = new Document(reader.getPageSize(1),0,0,0,0);

BaseFont base =BaseFont.createFont("D:\\ruta\\fuente.ttf", BaseFont.CP1250, BaseFont.EMBEDDED);
Font fonts = new Font(base, Float.parseFloat("40"),Font.BOLD, new BaseColor(255,0,0));

Paragraph parrafo= new Paragraph("https://www.youtube.com/", fonts);
Image imagen = Image.getInstance("D:\\ruta\\usuariosfondo.jpg");  

String base64Data = base64.substring(base64.indexOf(',') + 1);
byte[] decoded = Base64.decodeBase64(base64Data.getBytes());

Image imgQr = Image.getInstance(decoded);    

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter writer=PdfWriter.getInstance(document, baos);

document.open();
document.newPage();

parrafo.setAlignment(Element.ALIGN_RIGHT);
parrafo.setFont(fonts);

ColumnText ct = new ColumnText(writer.getDirectContent());
ct.setSimpleColumn(0,0,550,780);
ct.setAlignment(Element.ALIGN_RIGHT);
ct.addElement(parrafo); 
ct.go();

Float width = document.getPageSize().getWidth();    
Float height = document.getPageSize().getHeight();
imagen.scaleToFit(width, height);
imagen.setAbsolutePosition(0f, 0f);
imgQr.setAbsolutePosition(149f, 209f);
imgQr.scaleToFit(178.2992f, 178.2992f);
document.add(imagen);
document.add(imgQr);
//document.add(parrafo);    

document.close();   
String p=java.util.Base64.getEncoder().encodeToString(baos.toByteArray());

текст должен отображаться только со ссылками, так как текст не активирован для запуска URL

1 Ответ

0 голосов
/ 25 октября 2019

PDF, созданный вашим кодом, не содержит аннотаций ссылок. Так что вы не делаете это кликабельным.

Но он содержит URL-адреса! Некоторые программы просмотра PDF, в частности Adobe Reader, автоматически делают любой URL-адрес, который они распознают, кликабельным.

В случае Adobe Reader вы можете отключить эту «функцию» в настройках.

Если вы этого не сделаетеиметь контроль над настройками зрителей, просто не вставляйте URL-адреса в ваши PDF-файлы. Или предотвратите их легкое распознавание зрителем, например, путем рендеринга URL-адресов в виде растровых изображений и использования этих изображений вместо соответствующего URL-текста.

...