I have the below codes to split PDF into single page PDF's. It works for most of my images. But I encountered a few PDF's that Aspose generates the single pages without throwing any error and they cannot be opened with Adobe Reader.
string inputFile = @"C:\temp\problem images\32429797.pdf";
using (Aspose.Pdf.Document pdfDoc = new Aspose.Pdf.Document(inputFile))
{
int pageCount = 1;
int n = pdfDoc.Pages.Count;
foreach (Aspose.Pdf.Page pdfPage in pdfDoc.Pages)
{
using (Aspose.Pdf.Document newDoc = new Aspose.Pdf.Document())
{
newDoc.Pages.Add(pdfPage);
newDoc.OptimizeResources(new Aspose.Pdf.Document.OptimizationOptions()
{
LinkDuplcateStreams = true,
RemoveUnusedObjects = true,
RemoveUnusedStreams = true
//CompressImages = true,
//ImageQuality = 10
});
string outFile = @"C:\temp\test\test_" + pageCount.ToString().PadLeft(n.ToString().Length, '0') + ".pdf";
newDoc.Save(outFile);
}
pageCount++;
}
}
When I subsequently open the PDF from Adobe Reader, I get "An error exists on this page. Acrobat may not display the page correctly..." If I use a Aspose.Pdf.Document object to re-open the file, it opens it without generating error.