问题如下,我有一个创建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的文本的链接
发布于 2019-10-25 06:09:09
您的代码创建的pdf不包含链接注释。所以你不会让它变得可点击。
但是它包含URL!某些pdf查看器,特别是Adobe Reader,会自动使他们识别的任何url都可以点击。
在Adobe Reader的情况下,您可以在设置中禁用此“功能”。
如果您无法控制查看器的设置,请不要将URL放入您的pdf中。或者例如通过将url呈现为位图图像并使用这些图像而不是相应的url文本来防止它们容易被观看者识别。
https://stackoverflow.com/questions/58534439
复制相似问题