好吧,我正在尝试将多个PDF合并为一个.
编译时我没有错误.我试图首先合并文档但出错了因为我正在使用表格.
这是asp.net代码隐藏
if (Button.Equals("PreviewWord")) {
String eventTemplate = Server.MapPath("/ERAS/Badges/Template/EventTemp" + EventName + ".doc");
String SinglePreview = Server.MapPath("/ERAS/Badges/Template/PreviewSingle" + EventName + ".doc");
String PDFPreview = Server.MapPath("/ERAS/Badges/Template/PDFPreviewSingle" + EventName + ".pdf");
String previewPDFs = Server.MapPath("/ERAS/Badges/Template/PreviewPDFs" + EventName + ".pdf");
if (System.IO.File.Exists((String)eventTemplate))
{
if (vulGegevensIn == true)
{
//This creates a Worddocument and fills in names etc from database
CreateWordDocument(vulGegevensIn, eventTemplate, SinglePreview, false);
//This saves the SinglePreview.doc as a PDF @param place of PDFPreview
CreatePDF(SinglePreview, PDFPreview);
//Trying to merge
String[] previewsSmall=new …Run Code Online (Sandbox Code Playgroud) 我有一个byte []列表,我希望将其连接成一个字节[],这将是最终的PDf.
在"page = copy.GetImportedPage(new PdfReader(p),i);"我得到一个"对象引用未设置为实例错误.
我不知道发生了什么,我已经检查了每个对象,并且没有空.
关于这个的任何想法,或另一段可以成功的代码?!
我有这个方法:
编辑
public static byte[] concatAndAddContent(List<byte[]> pdf)
{
byte [] todos;
using(MemoryStream ms = new MemoryStream())
{
Document doc = new Document();
doc.Open();
PdfCopy copy = new PdfCopy(doc, ms);
PdfCopyFields copy2 = new PdfCopyFields(ms);
PdfReader reader;
foreach (byte[] p in pdf)
{
reader = new PdfReader(p);
int pages = reader.NumberOfPages;
// loop over document pages
for (int i = 1; i < pages; i++)
{
PdfImportedPage page = copy.GetImportedPage(reader, i);
PdfCopy.PageStamp stamp …Run Code Online (Sandbox Code Playgroud) 我必须将多个1页pdf合并为一个pdf.我正在使用iTextSHarp 5.5.5.0来实现这一目标,但是当我合并超过900-1000 pdf时,我得到一个内存不足异常.我注意到,即使我释放我的阅读器并关闭它,内存永远不会被正确清理(进程使用的内存量永远不会减少)所以我想知道我可能做错了什么.这是我的代码:
using (MemoryStream msOutput = new MemoryStream())
{
Document doc = new Document();
PdfSmartCopy pCopy = new PdfSmartCopy(doc, msOutput);
doc.Open();
foreach (Tuple<string, int> file in filesList)
{
PdfReader pdfFile = new PdfReader(file.Item1);
for (int j = 0; j < file.Item2; j++)
for (int i = 1; i < pdfFile.NumberOfPages + 1; i++)//in this case it's always 1.
pCopy.AddPage(pCopy.GetImportedPage(pdfFile, i));
pCopy.FreeReader(pdfFile);
pdfFile.Close();
File.Delete(file.Item1);
}
pCopy.Close();
doc.Close();
byte[] content = msOutput.ToArray();
using (FileStream fs = File.Create(Out))
{
fs.Write(content, 0, content.Length); …Run Code Online (Sandbox Code Playgroud) 我必须将多个 PDF 合并为一个 PDF。
我正在使用 iText.sharp 库,并收集转换后的代码并尝试使用它(从此处)实际代码是 C# 语言,我将其转换为 VB.NET。
Private Function MergeFiles(ByVal sourceFiles As List(Of Byte())) As Byte()
Dim mergedPdf As Byte() = Nothing
Using ms As New MemoryStream()
Using document As New Document()
Using copy As New PdfCopy(document, ms)
document.Open()
For i As Integer = 0 To sourceFiles.Count - 1
Dim reader As New PdfReader(sourceFiles(i))
' loop over the pages in that document
Dim n As Integer = reader.NumberOfPages
Dim page As Integer = 0
While …Run Code Online (Sandbox Code Playgroud) 我想在另一个缩放的PDF页面中插入PDF页面.我想用iTextSharp来做这件事.
我有一个矢量绘图,可以导出为单页PDF文件.我想将此文件添加到其他PDF文档的页面中,就像我将图像添加到PDF文档一样.
这可能吗?
这样做的目的是保持放大的能力而不会降低质量.
使用PDF矢量重现矢量绘图非常困难,因为它是一个非常复杂的绘图.
将矢量绘图导出为高分辨率图像不是一种选择,因为我必须在单个PDF文档中使用它们.最终的PDF文件非常大,写作速度太慢.
我正在维护一个使用 iText 2.1.7 创建 PDF 的 Web 应用程序。我想获取现有 PDF 的内容并将其放入代码正在创建的 pdf 文档中。我有以下内容(编辑:更完整的代码):
package itexttest;
import com.lowagie.text.Document;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfCopy;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
public class ITextTest
{
public static void main(String[] args)
{
try
{
ByteArrayOutputStream os = new ByteArrayOutputStream();
Document bigDoc = new Document(PageSize.LETTER, 50, 50, 110, 60);
PdfWriter writer = PdfWriter.getInstance(bigDoc, os);
bigDoc.open();
Paragraph par = new Paragraph("one");
bigDoc.add(par);
bigDoc.add(new Paragraph("three"));
addPdfPage(bigDoc, os, "c:/insertable.pdf");
bigDoc.close();
}
catch (Exception e) …Run Code Online (Sandbox Code Playgroud)