We are converting HTML to PDF (multi page pdf) using HtmlLoadOptions class and then passing HTML to Aspose.Pdf.Document class. Now we have a requirement in which every page of generated pdf will have an image in header and image and page number in footer. How can we accomplish this task using Aspose.Pdf....??? We cannot use the approach mentioned here : http://www.aspose.com/docs/display/pdfnet/Image++and++Page+Number+in+Header+Footer+section because we no more using Aspose.Pdf.Generator.Pdf class for PDF generation.
Can your team help us with some code to accomplish our tasks.
Thanks for your inquiry. Please check the following code snippet for adding a header/footer in a PDF document. Hopefully, it will help you to accomplish the requirements. If you want to add more than one element in a header/footer, you can use a table for the purpose.
Document doc = new Document("Input.pdf");
Aspose.Pdf.HeaderFooter header = new Aspose.Pdf.HeaderFooter();
Aspose.Pdf.HeaderFooter footer = new Aspose.Pdf.HeaderFooter();
FileStream fs = new FileStream(myDir + "logo.png",
FileMode.Open, FileAccess.Read);
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
image1.FixWidth = 50;
image1.FixHeight = 50;
//Add the image into paragraphs collection of the section
header.Paragraphs.Add(image1);
//Set the ImageStream to a MemoryStream object
image1.ImageStream = fs;
//Add footer text
Aspose.Pdf.Text.TextFragment fTxt = new Aspose.Pdf.Text.TextFragment("$p / $P");
fTxt.TextState.Font = FontRepository.FindFont("Arial");
fTxt.TextState.FontSize = 16;
fTxt.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;
footer.Paragraphs.Add(fTxt);
for (int cnt = 1; cnt <= doc.Pages.Count; cnt++)
{
doc.Pages[cnt].Header = header;
doc.Pages[cnt].Footer = footer;
}
doc.Save(myDir + "Output.pdf");
Please feel free to contact us for any further assistance.
Now we have concatenated PDF file, and we want to add image, text and page number to every page of generated PDF. So how can we achieve it using Inline Paragraph or table in section. We were stuck on how to add multiple elements on each pdf page....using Aspose.Pdf.Generator.Headerfooter........ It will be very helpful if you provide us with some code snippet.
Thanks for your inquiry. Please note Aspose.Pdf.Generator(old generator) is only used to create PDF files from scratch. However Aspose.Pdf(new generator) is used for both manipulating existing PDF document and creating PDF file from scratch. As you want to add image, text in existing PDF document, so please used above suggested code to add image and text in Page header/footer. Hopefully it will help you to accomplish the task.
Please feel free to contact us for any further assistance.
How can we add image, some text and page number (3 items) in the footer section of an existing pdf using Aspose.Pdf.HeaderFooter...?? Please provide sample code snippet for the same.
In order to add a Footer with three elements (Image, Text, and page numbering), the following code snippet can be used. However, during my testing, I observed that the Image and text are appearing only on the first page, and page numbering information is not being displayed on the first page. On subsequent pages, the Image and text are not being added, but only the page numbering information is being displayed. For the sake of correction, I have logged this problem as PDFNEWNET-38279 in our issue tracking system. We will further look into the details of this matter and will keep you posted on the status of the correction. Please be patient and spare us some time.
As a workaround, you may consider using the following code snippet to accomplish your requirement:
[C#]
Document doc = new Document("c:/pdftest/16+-+scheduling+order.pdf");
// Aspose.Pdf.HeaderFooter header = new Aspose.Pdf.HeaderFooter();
Aspose.Pdf.HeaderFooter footer = new Aspose.Pdf.HeaderFooter();
//create image stamp
ImageStamp imageStamp = new ImageStamp("c:/pdftest/logoSpin.png");
imageStamp.Height = 50;
imageStamp.Width = 50;
imageStamp.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Left;
//create footer
TextStamp textStamp = new TextStamp("Footer Text");
//set properties of the stamp
textStamp.BottomMargin = 10;
textStamp.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Center;
textStamp.VerticalAlignment = Aspose.Pdf.VerticalAlignment.Bottom;
//create page number stamp
PageNumberStamp pageNumberStamp = new PageNumberStamp();
//whether the stamp is background
pageNumberStamp.Background = false;
pageNumberStamp.Format = "Page # of " + doc.Pages.Count;
pageNumberStamp.BottomMargin = 10;
pageNumberStamp.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;
pageNumberStamp.StartingNumber = 1;
for (int cnt = 1; cnt <= doc.Pages.Count; cnt++)
{
doc.Pages[cnt].AddStamp(imageStamp);
doc.Pages[cnt].AddStamp(textStamp);
//add stamp to particular page
doc.Pages[cnt].AddStamp(pageNumberStamp);
}
doc.Save("c:/pdftest/FooterAdded_Output.pdf");
We use Aspose to save webpages as pdfs. I used this to add the url as page header and page numbers. But it works only on the 1st page, from second page on wards it shows some odd symbols.
Thanks for your inquiry. Please share your sample code along with input/output PDF documents here, We will look into it and will guide you accordingly.
Output is attached, only 1st page shoes page number
Thanks for your feedback. I have tested the scenario and noticed that when we initialize Footer object outside the loop page numbers are not reflecting on subsequent pages as expected, so logged a ticket PDFNET-41574 in our issue tracking system for further investigation and rectification.
Yes, you can initialize the HeaderFooter object inside loop as a workaround till we investigate and resolve above logged issue PDFNET-41574, please check following code snippet for details.
var pdfDocument = new Aspose.Pdf.Document(myDir + "bookmark_grouping.pdf");
Aspose.Pdf.HeaderFooter footer = null;
Aspose.Pdf.Text.TextFragment fTxt = new Aspose.Pdf.Text.TextFragment("$p / $P ");
fTxt.TextState.Font = FontRepository.FindFont("Arial");
fTxt.TextState.FontSize = 12;
fTxt.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;
foreach (Page page in pdfDocument.Pages)
{
footer = new Aspose.Pdf.HeaderFooter();
footer.Paragraphs.Add(fTxt);
page.Footer = footer;
}
Best Regards,
Cookie Notice
To provide you with the best experience, we use cookies for personalization, analytics, and ads. By using our site, you agree to our cookie policy.
Enables storage, such as cookies, related to analytics.
Sets consent for sending user data to Google for online advertising purposes.
Sets consent for personalized advertising.
Cookie Notice
To provide you with the best experience, we use cookies for personalization, analytics, and ads. By using our site, you agree to our cookie policy.
More info
Enables storage, such as cookies, related to analytics.
Enables storage, such as cookies, related to advertising.
Sets consent for sending user data to Google for online advertising purposes.
Sets consent for personalized advertising.
Cookie Notice
To provide you with the best experience, we use cookies for personalization, analytics, and ads. By using our site, you agree to our cookie policy.
More info
Enables storage, such as cookies, related to analytics.
Enables storage, such as cookies, related to advertising.
Sets consent for sending user data to Google for online advertising purposes.