How can I help you?
Save PDF file in C# and VB.NET
11 Jun 202610 minutes to read
Namespace required
The following namespaces of Essential® PDF need to be included in your application to save the PDF document.
using Syncfusion.Pdf.Parsing;using Syncfusion.Pdf.Parsing;Imports Syncfusion.Pdf.ParsingSaving a PDF document to file system
You can save the manipulated PDF document to file system using Save method of PdfLoadedDocument class.
//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Save the document in file system.
loadedDocument.Save("Output.pdf");//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Save the document in file system.
loadedDocument.Save("Output.pdf");'Load an existing PDF document.
Dim loadedDocument As New PdfLoadedDocument("Input.pdf")
'To-Do some manipulation
'Save the document in file system.
loadedDocument.Save("Output.pdf")Saving a PDF document to stream
You can also save the manipulated PDF document to stream using overloads of Save method.
//Load an existing PDF document.
FileStream docStream = new FileStream("Input.pdf", FileMode.Open, FileAccess.Read);
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(docStream);
//To-Do some manipulation
//Save the document into stream.
MemoryStream stream = new MemoryStream();
loadedDocument.Save(stream);//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Creates an instance of memory stream.
MemoryStream stream = new MemoryStream();
//Save the document stream.
loadedDocument.Save(stream) ;'Load an existing PDF document.
Dim loadedDocument As New PdfLoadedDocument("Input.pdf")
'To-Do some manipulation
'Creates an instance of memory stream.
Dim stream As New MemoryStream()
'Save the document to stream.
loadedDocument.Save(stream)Saving a PDF document into the same file or stream
You can also resave the manipulated PDF document to the same file using overloads of Save method.
//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Resave the document to the same file.
loadedDocument.Save();//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Resave the document to the same file.
loadedDocument.Save();'Load an existing PDF document.
Dim loadedDocument As New PdfLoadedDocument("Input.pdf")
'To-Do some manipulation
'Resave the document to the same file.
loadedDocument.Save()//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(stream);
//To-Do some manipulation
//Resave the document to the same stream.
loadedDocument.Save();//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(stream);
//To-Do some manipulation
//Resave the document to the same stream.
loadedDocument.Save();'Load an existing PDF document.
Dim loadedDocument As New PdfLoadedDocument(stream)
'To-Do some manipulation
'Resave the document to the same stream.
loadedDocument.Save()Closing a document
After the document manipulation and save operation are completed, you should close the instance of PdfLoadedDocument, in order to release all the memory consumed by PDF DOM. The following code snippet illustrates how to Close a PdfLoadedDocument instance.
//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Save the document into stream.
MemoryStream stream = new MemoryStream();
loadedDocument.Save(stream);
//Close the document.
loadedDocument.Close(true);//Load an existing PDF document.
PdfLoadedDocument loadedDocument = new PdfLoadedDocument("Input.pdf");
//To-Do some manipulation
//Save the document in file system.
loadedDocument.Save("Output.pdf");
//Close the document.
loadedDocument.Close(true);'Load an existing PDF document.
Dim loadedDocument As New PdfLoadedDocument("Input.pdf")
'To-Do some manipulation
'Save the document in file system.
loadedDocument.Save("Output.pdf")
'Close the document.
loadedDocument.Close(True)NOTE
- Close() method will dispose all the memory consumed by PDF DOM.
- Close(true) method will dispose all the memory consumed by PDF DOM as well as disposes its document stream.
Secured documents exception
You can catch the secured document exception by opening an existing encrypted PDF document from either the file system, stream, or byte array using the following code sample as follows.
//Load an existing PDF document.
PdfLoadedDocument document = null;
try
{
//Open an existing PDF document from a stream.
document = new PdfLoadedDocument("Input.pdf", "password");
}
catch (Syncfusion.Pdf.PdfInvalidPasswordException exception)
{
//Secured PDF document password is invalid or opened without a password.
}
MemoryStream stream = new MemoryStream();
document.Save(stream);
//Close the document.
document.Close(true);PdfLoadedDocument document = null;
try
{
//Load an existing PDF document.
document = new PdfLoadedDocument("Input.pdf", "password");
}
catch (Syncfusion.Pdf.PdfInvalidPasswordException exception)
{
//Secured PDF document password is invalid or opened without a password.
}
//Save the document.
document.Save("Output.pdf");
//Close the document.
document.Close(true);Dim document As PdfLoadedDocument = Nothing
Try
'Load an existing PDF document.
document = New PdfLoadedDocument("Input.pdf", "password")
Catch exception As Syncfusion.Pdf.PdfInvalidPasswordException
'Secured PDF document password is invalid or opened without a password.
End Try
'Save the document.
document.Save("Output.pdf")
'Close the document.
document.Close(True)Possible error messages of invalid PDF documents while loading
The following are the possible error messages of invalid PDF documents while loading:
I. Please find some of the following corrupted error messages that cannot be repaired:
- Could not find a valid signature (%PDF-).
- Bad Format error.
- Lexical Error: Unmatched Input.
- The document does not contain EOF.
- The document has corrupted cross reference tables.
- Error: Bad input stream initializer.
- Fatal Error occurred.
II. Please find some of the possible offset error messages that may be repairable:
1.Invalid cross-reference table with offset position.
2.Trailer Prev offset is located in the same cross table section.
//Load a PDF document.
PdfLoadedDocument document = null;
try
{
//Open an existing PDF document from the stream.
document = new PdfLoadedDocument("Input.pdf", true);
}
catch (PdfException exception)
{
//Invalid cross-reference table with offset position
//Trailer Prev offset is located in the same cross table section
//Could not find a valid signature (%PDF-).
//Bad Format error
//Lexical error: Unmatched input
//The document does not contain EOF
//The document has corrupted cross reference table
//Error: Bad input stream initializer
//Fatal error occured
//Unexpected token name before 257
}
//Save the document.
MemoryStream stream = new MemoryStream();
document.Save(stream);
//Close the document.
document.Close(true);PdfLoadedDocument document = null;
try
{
//Open an existing PDF document from the disk.
document = new PdfLoadedDocument("Input.pdf", true);
}
catch (Exception message)
{
//Invalid cross-reference table with offset position
//Trailer Prev offset is located in the same cross table section
//Could not find a valid signature (%PDF-).
//Bad Format error
//Lexical error: Unmatched input
//The document does not contain EOF
//The document has corrupted cross reference tables
//Error: Bad input stream initializer
//Fatal error occured
}
//Save the document.
document.Save("Output.pdf");
//Close the document.
document.Close(true);Dim document As PdfLoadedDocument = Nothing
Try
'Load an existing document.
document = New PdfLoadedDocument("Input.pdf",true)
Catch exception As Exception
'Invalid cross-reference table with offset position
'Trailer Prev offset is located in the same cross table section
'Could not find a valid signature (%PDF-).
'Bad Format error
'Lexical error: Unmatched input
'The document does not contain EOF
'The document has corrupted cross reference tables
'Error: Bad input stream initializer
'Fatal error occured
End Try
'Save the document.
document.Save("Output.pdf")
'Close the document.
document.Close(True)