本文整理匯總了C#中iTextSharp.text.pdf.PdfCopy.GetImportedPage方法的典型用法代碼示例。如果您正苦於以下問題:C# PdfCopy.GetImportedPage方法的具體用法?C# PdfCopy.GetImportedPage怎麽用?C# PdfCopy.GetImportedPage使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類iTextSharp.text.pdf.PdfCopy
的用法示例。
在下文中一共展示了PdfCopy.GetImportedPage方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Collate
public static bool Collate(string frontSide, string backSide, string saveAs, bool backSideIsInReverseOrder = true)
{
try
{
bool backSideIsAscending = !backSideIsInReverseOrder;
using (FileStream stream = new FileStream(saveAs, FileMode.Create))
using (Document doc = new Document())
using (PdfCopy pdf = new PdfCopy(doc, stream))
{
doc.Open();
int b = 0;
using (PdfReader front = new PdfReader(frontSide))
{
using (PdfReader back = new PdfReader(backSide))
{
for (int p = 1; p <= front.NumberOfPages; p++)
{
pdf.AddPage(pdf.GetImportedPage(front, p));
pdf.FreeReader(front);
if (p <= back.NumberOfPages)
{
if (backSideIsAscending)
b = p;
else
b = back.NumberOfPages - p + 1;
pdf.AddPage(pdf.GetImportedPage(back, b));
pdf.FreeReader(back);
}
}
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
return true;
}
示例2: Write
// ---------------------------------------------------------------------------
public void Write(Stream stream) {
using (ZipFile zip = new ZipFile()) {
MovieLinks1 ml = new MovieLinks1();
byte[] r1 = Utility.PdfBytes(ml);
MovieHistory mh = new MovieHistory();
byte[] r2 = Utility.PdfBytes(mh);
using (MemoryStream ms = new MemoryStream()) {
// step 1
using (Document document = new Document()) {
// step 2
using (PdfCopy copy = new PdfCopy(document, ms)) {
// step 3
document.Open();
// step 4
// reader for document 1
PdfReader reader1 = new PdfReader(r1);
int n1 = reader1.NumberOfPages;
// reader for document 2
PdfReader reader2 = new PdfReader(r2);
int n2 = reader2.NumberOfPages;
// initializations
PdfImportedPage page;
PdfCopy.PageStamp stamp;
// Loop over the pages of document 1
for (int i = 0; i < n1; ) {
page = copy.GetImportedPage(reader1, ++i);
stamp = copy.CreatePageStamp(page);
// add page numbers
ColumnText.ShowTextAligned(
stamp.GetUnderContent(), Element.ALIGN_CENTER,
new Phrase(string.Format("page {0} of {1}", i, n1 + n2)),
297.5f, 28, 0
);
stamp.AlterContents();
copy.AddPage(page);
}
// Loop over the pages of document 2
for (int i = 0; i < n2; ) {
page = copy.GetImportedPage(reader2, ++i);
stamp = copy.CreatePageStamp(page);
// add page numbers
ColumnText.ShowTextAligned(
stamp.GetUnderContent(), Element.ALIGN_CENTER,
new Phrase(string.Format("page {0} of {1}", n1 + i, n1 + n2)),
297.5f, 28, 0
);
stamp.AlterContents();
copy.AddPage(page);
}
}
}
zip.AddEntry(RESULT, ms.ToArray());
zip.AddEntry(Utility.ResultFileName(ml.ToString() + ".pdf"), r1);
zip.AddEntry(Utility.ResultFileName(mh.ToString()+ ".pdf"), r2);
}
zip.Save(stream);
}
}
示例3: TestExtraXObjects
public void TestExtraXObjects()
{
#if DRAWING
PdfReader sourceR = new PdfReader(CreateImagePdf());
try
{
int sourceXRefCount = sourceR.XrefSize;
Document document = new Document();
MemoryStream outStream = new MemoryStream();
PdfCopy copy = new PdfCopy(document, outStream);
document.Open();
PdfImportedPage importedPage = copy.GetImportedPage(sourceR, 1);
copy.AddPage(importedPage);
document.Close();
PdfReader targetR = new PdfReader(outStream.ToArray());
int destinationXRefCount = targetR.XrefSize;
// TestResourceUtils.saveBytesToFile(createImagePdf(), new File("./source.pdf"));
// TestResourceUtils.saveBytesToFile(out.toByteArray(), new File("./result.pdf"));
Assert.AreEqual(sourceXRefCount, destinationXRefCount);
}
finally
{
sourceR.Close();
}
#endif// DRAWING
}
示例4: ExtractPage
/// <summary>
/// Extract a single page from PDF file.
/// </summary>
/// <param name="sourceFile">The source file.</param>
/// <param name="outputFile">The output file.</param>
/// <param name="pageNumber">The specific page number.</param>
public static void ExtractPage(string sourceFile, string outputFile, int pageNumber)
{
try
{
PdfReader reader = new PdfReader(sourceFile);
if (pageNumber > reader.NumberOfPages)
{
Console.WriteLine("This page number is out of reach.");
return;
}
Document document = new Document();
PdfCopy pdfCopy = new PdfCopy(document, new FileStream(outputFile, FileMode.Create));
document.Open();
PdfImportedPage importedPage = pdfCopy.GetImportedPage(reader, pageNumber);
pdfCopy.AddPage(importedPage);
document.Close();
reader.Close();
}
catch (Exception ex)
{
throw ex;
}
}
示例5: ExtractPage
public void ExtractPage(string sourcePdfPath, string outputPdfPath,
int pageNumber, string password = "")
{
PdfReader reader = null;
Document document = null;
PdfCopy pdfCopyProvider = null;
PdfImportedPage importedPage = null;
try
{
// Intialize a new PdfReader instance with the contents of the source Pdf file:
reader = new PdfReader(sourcePdfPath, Encoding.UTF8.GetBytes(password));
// Capture the correct size and orientation for the page:
document = new Document(reader.GetPageSizeWithRotation(pageNumber));
// Initialize an instance of the PdfCopyClass with the source
// document and an output file stream:
pdfCopyProvider = new PdfCopy(document,
new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create));
document.Open();
// Extract the desired page number:
importedPage = pdfCopyProvider.GetImportedPage(reader, pageNumber);
pdfCopyProvider.AddPage(importedPage);
document.Close();
reader.Close();
}
catch (Exception ex)
{
throw ex;
}
}
示例6: Combine
public void Combine(string saveFileName, IEnumerable<string> files)
{
byte[] mergedPdf = null;
using (MemoryStream ms = new MemoryStream())
{
using (Document document = new Document())
{
using (PdfCopy copy = new PdfCopy(document, ms))
{
document.Open();
foreach (var item in files.OrderBy(x=> x))
{
PdfReader reader = new PdfReader(item);
// loop over the pages in that document
int n = reader.NumberOfPages;
for (int page = 0; page < n; )
{
copy.AddPage(copy.GetImportedPage(reader, ++page));
}
reader.Close();
}
}
}
mergedPdf = ms.ToArray();
}
File.WriteAllBytes(String.Concat(saveFileName, ".pdf"), mergedPdf);
}
示例7: MergeFiles
/// <summary>
/// Merges multiple pdf files into 1 pdf file.
/// </summary>
/// <param name="FilesToMerge">Files to merger (Byte array for each file)</param>
/// <returns>1 file with all the files passed in</returns>
public static byte[] MergeFiles(IEnumerable<byte[]> FilesToMerge)
{
//Declare the memory stream to use
using (var MemoryStreamToWritePdfWith = new MemoryStream())
{
//declare the new document which we will merge all the files into
using (var NewFileToMergeIntoWith = new Document())
{
//holds the byte array which we will return
byte[] ByteArrayToReturn;
//declare the pdf copy to write the data with
using (var PdfCopyWriter = new PdfCopy(NewFileToMergeIntoWith, MemoryStreamToWritePdfWith))
{
//set the page size of the new file
//NewFileToMergeIntoWith.SetPageSize(PageSize.GetRectangle("Letter").Rotate().Rotate());
//go open the new file that we are writing into
NewFileToMergeIntoWith.Open();
//now loop through all the files we want to merge
foreach (var FileToMerge in FilesToMerge)
{
//declare the pdf reader so we can copy it
using (var PdfFileReader = new PdfReader(FileToMerge))
{
//figure out how many pages are in this pdf, so we can add each of the pdf's
int PdfFilePageCount = PdfFileReader.NumberOfPages;
// loop over document pages (start with page 1...not a 0 based index)
for (int i = 1; i <= PdfFilePageCount; i++)
{
//set the file size for this page
NewFileToMergeIntoWith.SetPageSize(PdfFileReader.GetPageSize(i));
//add a new page for the next page
NewFileToMergeIntoWith.NewPage();
//now import the page
PdfCopyWriter.AddPage(PdfCopyWriter.GetImportedPage(PdfFileReader, i));
}
}
}
//now close the new file which we merged everyting into
NewFileToMergeIntoWith.Close();
//grab the buffer and throw it into a byte array to return
ByteArrayToReturn = MemoryStreamToWritePdfWith.GetBuffer();
//flush out the memory stream
MemoryStreamToWritePdfWith.Flush();
}
//now return the byte array
return ByteArrayToReturn;
}
}
}
示例8: ExtractPagesFromFile
private IList<PdfImportedPage> ExtractPagesFromFile(string sourcePdfPath)
{
IList<PdfImportedPage> pages = new List<PdfImportedPage>();
PdfReader reader = new PdfReader(sourcePdfPath);
PdfCopy pdfCopyProvider = new PdfCopy(new Document(), new MemoryStream());
for (int i = 0; i < reader.NumberOfPages; i++)
{
pages.Add(pdfCopyProvider.GetImportedPage(reader, i + 1));
}
return pages;
}
示例9: ManipulateWithCopy
/**
* Creates a new PDF based on the one in the reader
* @param reader a reader with a PDF file
* @throws IOException
* @throws DocumentException
*/
private void ManipulateWithCopy(PdfReader reader)
{
int n = reader.NumberOfPages;
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new MemoryStream());
document.Open();
for (int i = 0; i < n; )
{
copy.AddPage(copy.GetImportedPage(reader, ++i));
}
document.Close();
}
示例10: MergeFiles
public static byte[] MergeFiles(List<byte[]> sourceFiles)
{
Document document = new Document();
using (MemoryStream ms = new MemoryStream())
{
PdfCopy copy = new PdfCopy(document, ms);
document.Open();
int documentPageCounter = 0;
// Iterate through all pdf documents
for (int fileCounter = 0; fileCounter < sourceFiles.Count; fileCounter++)
{
// Create pdf reader
PdfReader reader = new PdfReader(sourceFiles[fileCounter]);
int numberOfPages = reader.NumberOfPages;
// Iterate through all pages
for (int currentPageIndex = 1; currentPageIndex <= numberOfPages; currentPageIndex++)
{
PdfImportedPage importedPage = copy.GetImportedPage(reader, currentPageIndex);
//***************************************
// Uncomment and alter for watermarking.
//***************************************
//
//documentPageCounter++;
//PdfCopy.PageStamp pageStamp = copy.CreatePageStamp(importedPage);
//
//// Write header
//ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
// new Phrase("PDF Merged with me.AxeyWorks PDFMerge"), importedPage.Width / 2, importedPage.Height - 30,
// importedPage.Width < importedPage.Height ? 0 : 1);
//
//// Write footer
//ColumnText.ShowTextAligned(pageStamp.GetOverContent(), Element.ALIGN_CENTER,
// new Phrase($"Page {documentPageCounter}"), importedPage.Width / 2, 30,
// importedPage.Width < importedPage.Height ? 0 : 1);
//
//pageStamp.AlterContents();
copy.AddPage(importedPage);
}
copy.FreeReader(reader);
reader.Close();
}
document.Close();
return ms.GetBuffer();
}
}
示例11: ManipulateWithCopy
// ---------------------------------------------------------------------------
/**
* Creates a new PDF based on the one in the reader
* @param reader a reader with a PDF file
*/
private byte[] ManipulateWithCopy(PdfReader reader) {
using (MemoryStream ms = new MemoryStream()) {
int n = reader.NumberOfPages;
using (Document document = new Document()) {
using (PdfCopy copy = new PdfCopy(document, ms)) {
document.Open();
for (int i = 0; i < n;) {
copy.AddPage(copy.GetImportedPage(reader, ++i));
}
}
}
return ms.ToArray();
}
}
示例12: AddDataSheets
// ---------------------------------------------------------------------------
/**
* Fills out a data sheet, flattens it, and adds it to a combined PDF.
* @param copy the PdfCopy instance (can also be PdfSmartCopy)
*/
public void AddDataSheets(PdfCopy copy) {
IEnumerable<Movie> movies = PojoFactory.GetMovies();
// Loop over all the movies and fill out the data sheet
foreach (Movie movie in movies) {
PdfReader reader = new PdfReader(DATASHEET_PATH);
using (var ms = new MemoryStream()) {
using (PdfStamper stamper = new PdfStamper(reader, ms)) {
Fill(stamper.AcroFields, movie);
stamper.FormFlattening = true;
}
reader = new PdfReader(ms.ToArray());
copy.AddPage(copy.GetImportedPage(reader, 1));
}
}
}
示例13: Merge
public static void Merge(string file, string OutFile, ref SetupStationaryFields.addresscollection aic)
{
using (FileStream stream = new FileStream(OutFile, FileMode.Create))
{
using (Document doc = new Document())
{
using (PdfCopy pdf = new PdfCopy(doc, stream))
{
doc.Open();
PdfReader reader = null;
PdfImportedPage page = null;
//fixed typo
int ii = 0;
int count = 0;
foreach (SetupStationaryFields.addressitem ai in aic)
{
if ((!ai.ommitted))
{
reader = new PdfReader(file);
PdfReader.unethicalreading = true;
count = reader.NumberOfPages;
for (int i = 0; i <= reader.NumberOfPages - 1; i++)
{
page = pdf.GetImportedPage(reader, i + 1);
pdf.AddPage(page);
}
pdf.FreeReader(reader);
reader.Close();
ai.startpage = ((ii) * count) + 1;
ai.endpage = (ii * count) + count;
ii = ii + 1;
}
}
}
}
stream.Close();
}
}
示例14: Convert
protected override void Convert(ConversionOptions options)
{
if (m_sourceFiles != null)
{
if (m_sourceFiles.Count == 1 && !m_forceConversion)
{
this.OutputFile = m_sourceFiles[0];
}
else
{
try
{
using (MemoryStream ms = new MemoryStream())
{
using (Document doc = new Document(options.Orientation == PageOrientation.Portrait ? PageSize.LETTER : PageSize.LETTER_LANDSCAPE))
{
PdfCopy copy = new PdfCopy(doc, ms);
PdfReader reader;
doc.Open();
int n;
foreach (byte[] file in m_sourceFiles)
{
if (file != null)
{
reader = new PdfReader(file);
n = reader.NumberOfPages;
for (int page = 1; page <= n; page++)
{
copy.AddPage(copy.GetImportedPage(reader, page));
}
copy.FreeReader(reader);
}
}
}
this.OutputFile = ms.ToArray();
}
}
catch (Exception ex)
{
throw new ConversionEngineException("Error when merging Pdf files.", null, "pdf", this, ex);
}
}
}
}
示例15: ManipulatePdf
// ---------------------------------------------------------------------------
/**
* Manipulates a PDF file src with the file dest as result
* @param src the original PDF
*/
public byte[] ManipulatePdf(List<byte[]> src)
{
using (MemoryStream ms = new MemoryStream())
{
// step 1
using (Document document = new Document())
{
// step 2
using (PdfCopy copy = new PdfCopy(document, ms))
{
// step 3
document.Open();
// step 4
int page_offset = 0;
// Create a list for the bookmarks
List<Dictionary<String, Object>> bookmarks =
new List<Dictionary<String, Object>>();
for (int i = 0; i < src.Count; i++)
{
PdfReader reader = new PdfReader(src[i]);
// merge the bookmarks
IList<Dictionary<String, Object>> tmp =
SimpleBookmark.GetBookmark(reader);
SimpleBookmark.ShiftPageNumbers(tmp, page_offset, null);
foreach (var d in tmp) bookmarks.Add(d);
// add the pages
int n = reader.NumberOfPages;
page_offset += n;
for (int page = 0; page < n; )
{
copy.AddPage(copy.GetImportedPage(reader, ++page));
}
}
// Add the merged bookmarks
copy.Outlines = bookmarks;
}
}
return ms.ToArray();
}
}