我使用EvoPDF将HTML保存为PDF文件。 HTML包含长文本(可以包含列表,表格等)。我想添加页边距,但我不想使用pdfConverter.PdfDocumentOptions.{Bottom/Top}Margin
- 属性,我想将页边距设置为HTML(类似于Microsoft Word,我在其中设置页面大小和边距和文本自动移动到下一页,以前设置了边距)。我预览了他们的Help page,但我无法找到相关信息。
我的转换代码是:
EvoPdf.HtmlToPdf.PdfConverter pdfConverter = new EvoPdf.HtmlToPdf.PdfConverter();
pdfConverter.LicenseKey = System.Configuration.ConfigurationManager.AppSettings["EvoHtmlToPdfLicence"];
pdfConverter.PdfDocumentOptions.PdfPageSize = EvoPdf.HtmlToPdf.PdfPageSize.Letter;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = EvoPdf.HtmlToPdf.PdfPageOrientation.Portrait;
byte[] pdf = pdfConverter.GetPdfBytesFromHtmlString(htmlText);
谢谢!
答案 0 :(得分:1)
边距属性是全局的,因此页眉,页脚,正文受此影响。 如果您想单独影响渲染的HTML,可以使用以下设置:
PDF格式的HTML内容目的地。 HTML内容目标由X和Y坐标给出,在第一个PDF页面中开始渲染,目标矩形的宽度和高度。所有值都以点表示。 1点是1/72英寸。如果你没有设置任何目标矩形,那么默认情况下转换器将开始渲染在第一页的左上角,将尝试使用整个PDF页面宽度进行渲染,并将自动确定目标矩形高度,以便整个HTML内容可见。您可以在代码中设置的用于控制PDF中的HTML内容目标的属性是X,Y,Width和Height。 [...]
HTML内容顶部和底部间距。使用这些选项,您可以为HTML内容设置顶部和底部填充。例如,当您要在PDF页眉或页脚与主内容之间引入间距时,这可能很有用。您可以在代码中设置的用于控制顶部和底部间距的属性是TopSpacing和BottomSpacing。 [...]
// Category: HTML Content Destination and Spacing Options
// Set HTML content destination in PDF page
if (xLocationTextBox.Text.Length > 0)
htmlToPdfConverter.PdfDocumentOptions.X = float.Parse(xLocationTextBox.Text);
if (yLocationTextBox.Text.Length > 0)
htmlToPdfConverter.PdfDocumentOptions.Y = float.Parse(yLocationTextBox.Text);
if (contentWidthTextBox.Text.Length > 0)
htmlToPdfConverter.PdfDocumentOptions.Width = float.Parse(contentWidthTextBox.Text);
if (contentHeightTextBox.Text.Length > 0)
htmlToPdfConverter.PdfDocumentOptions.Height = float.Parse(contentHeightTextBox.Text);
// Set HTML content top and bottom spacing or leave them not set to have no spacing for the HTML content
htmlToPdfConverter.PdfDocumentOptions.TopSpacing = float.Parse(topSpacingTextBox.Text);
htmlToPdfConverter.PdfDocumentOptions.BottomSpacing = float.Parse(bottomSpacingTextBox.Text);