Tag: pdf

iText页面包装 – 改变元素的顺序

当我遇到这个问题时,我正在使用iText生成PDF报告,并编写了一个简单的例子来说明它。 我正在组合简单的段落和图像。 图像的高度使得3适合PDF页面,但是当文本在页面上时,只有2个图像适合。 我使用以下代码创建PDF: Document document = new Document(PageSize.LETTER, 0, 0, 0, 0); PdfWriter writer = PdfWriter.getInstance(document, fileOutput); document.open(); document.add(new Paragraph(“hello world1”)); addImage(document); addImage(document); addImage(document); document.add(new Paragraph(“hello world2”)); document.close(); 我希望输出看起来像这样 hello world1 image image image hello world2 相反,我得到的是, Hello world 1 image image hello world 2 image 我没有使用iText设置任何奇怪的包装参数,这个例子真的很简单。 关于为什么它似乎是自动包装这个错误的任何想法? 在实际情况中,仅添加分页符不是可接受的解决方案。 非常感谢。

如何使用IText在PDF的页面中间插入内容

我需要在PDF中将内容插入页面中间。 内容可以是动态表格或图像。 我的概念是首先将PDF分成两部分,然后通过替换占位符字段来获取要添加和追加的新内容。 根据IText,Splitting称为Tiling,这是一个相同的示例。 http://itextpdf.com/examples/iia.php?id=116 上面的代码有两个缺点:1。它将页面分成16个部分。 但这是示例的一部分。 我仍然无法找到一种方法将文件分成两部分。 2.其次,拆分页面将转换为完整页面,从而扰乱其比例。 重新排列代码是另一个问题。 应在附加模式下重新排序剩余的内容。 但直到我只找到代码来添加完整的新页面而不仅仅是内容。 我找到了一个代码,通过替换占位符来附加PDF内容: float[] fieldPosition= pdfTemplate.getAcroFields().getFieldPositions(“tableField”); PdfPTable table = buildTable(); PdfContentByte cb = stamper.getOverContent(1); table.writeSelectedRows(0, -1, fieldPosition[1],fieldPosition[4],cb); 请帮我解决这个要求。

用Java下载PDF是否已损坏?

我已经阅读了关于如何使用Java从Internet下载和保存文件的优秀讨论。 但是,如果我执行下一个代码,我会得到一个损坏的PDF。 知道为什么吗? import java.io.*; import java.net.*; public class PDFDownload { public static String URL = “http://www.nbc.com/Heroes/novels/downloads/”; public static String FOLDER = “C:/Users/sdelamo/workspace/SandBox/HeroesNovel/”; public static void main(String[] args) { String filename = “Heroes_novel_001.pdf”; try { saveUrl(FOLDER + filename, URL + filename); } catch (MalformedURLException e) { System.out.println(“MalformedURLException”); } catch (IOException e) { System.out.println(“IOException”); } } […]

java pdfbox printerjob错误的缩放/页面格式

我正在尝试使用pdfbox打印现有的pdf文件。 目前我通过maven使用pdfbox 2.0.0 RC3。 这是我目前的代码: PDDocument document = PDDocument.load(new File(myPdfFile)); PrinterJob job = PrinterJob.getPrinterJob(); if (job.printDialog()) { job.setPageable(new PDFPageable(document)); job.print(); } document.close(); 为了测试,我用Adobe Acrobat打印了一个测试pdf,并用几行代码打印了相同的pdf。 除边境外,一切正常。 所有边框(页眉,页脚,左侧和右侧)都很小,页脚太小。 有没有一种我在万维网上找不到的神奇方法来设置正确的缩放/格式?

Android打开下载的文件

我有一个关于下载pdf文件并使用手机上安装的pdf阅读器应用程序打开它的问题。 我是初学者并且正在努力工作,但却陷入了困境。 所以我现在拥有的:我有一个活动,现在开始下载一个pdf文件并尝试打开是有意图的。 现在一切都是静态的,这就是为什么我有一个设置url。 private void DownloadFile(){ DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE); Uri Download_Uri = Uri.parse(“http://awebiste.adomain/afile.pdf”); DownloadManager.Request request = new DownloadManager.Request(Download_Uri); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE); request.setAllowedOverRoaming(false); request.setTitle(“My Data Download”); request.setDescription(“Android Data download using DownloadManager.”); request.setDestinationInExternalFilesDir(this,Environment.DIRECTORY_DOWNLOADS,”test.pdf”); Long downloadReference = downloadManager.enqueue(request); if (downloadReference != null){ Intent target = new Intent(Intent.ACTION_VIEW); target.setDataAndType(Uri.parse(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + “/test.pdf”), “application/pdf”); target.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Log.v(“OPEN_FILE_PATH”, getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + “/test.pdf”); […]

使用PDFBox合并Pdf文件

我必须使用Apache的PdfBox合并两个pdf文件。 我已经采用了物理pdf文件。 以下是代码: PDFMergerUtility ut = new PDFMergerUtility(); ut.addSource(path1); ut.addSource(path2); ut.setDestinationFileName(path3); ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly()); 文件合并完美但后面有一些约束如下: 我在代码本身创建第一个文件,所以它是PDDocument对象。 我必须与第一个文件合并的文件是字节数组格式。 我不需要保存合并的文件,但需要将其转换为字节数组。 请任何人帮助我达到这个要求。

如何真正使用ItextPDF来保护PDF?

我一直致力于在PDF上设置密码以防止复制/粘贴并允许打印,添加水印并设置所有者密码以防止进一步更改。 一切都按预期运作良好,没有问题。 然后我免费下载了这个为期15天的pdf清除工具,a-pdf。 眨眼间它会删除所有保护,无论密码的复杂程度如何(尝试使用50个字符长度的所有类型的字符)。 我看到itextPDF中还有其他方法来加密文档。 我使用了以下内容: File f = new File(“C:/TEMP/zip/waterMarked.pdf”); String hardPassword = “D 5BaIZQ@ CqAk+NQCW)7Dkgb@i&02ifu!2TMX*d 0TGK(j(Kq”; byte[] hardPasswordByte = hardPassword.getBytes(); PdfReader reader = new PdfReader(“C:/TEMP/zip/Original_document-9.pdf”); FileOutputStream out = new FileOutputStream(f); PdfStamper stamp = new PdfStamper(reader, out); //first argument is the user password. If set to something it asks for password when opening file, […]

在android中选择文件后找不到文件错误

我想在我的android app.now中打开一个.pdf文件我可以浏览pdf文件,浏览文件后,当我检查文件是否存在时,我收到文件未找到错误。 现在选择文件后,我选择的文件Uri data.getData()就像 content://com.android.externalstorage.documents/document/6333-6131:SHIDHIN.pdf 和我使用data.getData().getPath().toString()解析的路径data.getData().getPath().toString()就像 /document/6333-6131:SHIDHIN.pdf这是我的代码。 请帮我。 // To Browse the file Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(“application/pdf”); startActivityForResult(intent, PICK_FILE_REQUEST); 选择文件后 //onActivityResult public void onActivityResult(final int requestCode, int resultCode, Intent data) { try { switch (requestCode) { case PICK_FILE_REQUEST: if (resultCode == RESULT_OK) { try { Uri fileUri = data.getData(); String path = fileUri.getPath().toString(); […]

在PDFBox中,为什么保存后文件大小会变得非常大?

题 我正在使用PDFBox 1.8.8来处理现有的PDF文件。 保存文档后,输出文件将比原始文件大几倍。 这是不可取的。 如何减小输出文件的文件大小? 如何复制我的情况 在以下代码中,PDFBox只是加载现有PDF然后保存。 没有别的办法。 然而,文件大小仍然变大了几倍。 以下是两个示例输入文件的链接。 对于input1.pdf,文件大小从6MB增加到50MB。 对于input2.pdf,文件大小从0.4MB增加到1.3MB。 https://dl.dropboxusercontent.com/u/13566649/samplePDF/input1.pdf https://dl.dropboxusercontent.com/u/13566649/samplePDF/input2.pdf import java.io.*; import org.apache.pdfbox.pdmodel.*; import org.apache.pdfbox.exceptions.*; class Test { public static void main(String[] args) throws IOException, COSVisitorException { PDDocument document = PDDocument.load(“input1.pdf”); document.save(“output.pdf”); document.close(); } } 我试过的 我已经尝试使用addCompression()类的addCompression()方法,如下面的代码所示。 它没有改变任何东西。 输出文件大小仍然相同。 class Test2 { public static void main(String[] args) throws IOException, […]

How2:将JPanel添加到Document,然后导出为PDF

有关编程的任何论坛的第一篇文章…我通常只是搜索直到我找到答案…但这次我真的卡住了…… 这是问题…我有一个JPanel,最近发现itext为您提供了一种将Java GUI导出为PDF的方法… 我似乎无法理解itext的语言,也不知道如何将简单的JPanel添加到文档然后将该文档导出为PDF …这就是我目前所拥有的… import java.io.FileOutputStream; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import java.awt.Color; import javax.swing.*; public class HelloWorld { public static void main(String[] args) { try { //Panel creation and setup JPanel panel = new JPanel(); //just to ensure that the panel has content… JLabel label = new JLabel(“i am a label”); panel.add(label); panel.setSize(100,100); //so […]