Hello,
I'm trying to rewrite a PDF-generator function that creates a PDF from HTML (which is the result of an XSLT+xml transform) using another HTML to PDF library to a new function that uses the Telerik methods. That works Ok, but there are 2 things I can't figure out how to do (if even possible) :
- The HTML content consists of a table with uneven row heights, depending on the content. Some rows contain images, some don't. So, I can't determine beforehand which row needs to start on a new page. Currently, I use page-break-inside: avoid on the rows, and that works with the other library, but not with the Telerik methods. Some rows are split over two pages. How can I prevent an element from breaking up over two pages?
- With the current library, I'm able to provide a separate PDF file that is used as a background for every rendered page. That PDF is a single-page PDF with the 'corporate stationery' (don't know how that's called ;-), so the resulting PDF contains multiple pages with the HTML output in the company style. Is something like that possible with the Telerik methods? I know how to draw a small HTML snippet on a single PDF page, but I can't figure out how to convert HTML to PDF with this background on every page.
Any help is appreciated.
Regards,
Kees
I am looking at this example. Is it possible to format the text using HTML tags?
For ex: can the textboxvalue = <b>text</b>?void ProcessTextBox(TextBoxField textBoxField, string textboxValue) { textBoxField.Value = textboxValue; }
https://demos.telerik.com/blazor-ui/pdfprocessing/read-and-write-form-fields
I've obtained a x509 signing certificate and able to use it with Telerik PDF processing to generate a signed PDF. The problem is that none of the signatures are valid because of the time stamp!
There doesn't appear to be any way to insert a TSA timestamp with the signing flow.
How can I fix this, the Telerik signatures are useless otherwise.
Thanks!
I am trying out the document processing library and the barcode formsource (https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/model/formsource/barcode).
When I add the barcode, I get a white pdf. If I leave barcode off it, everything else shows up. Any idea what i am doing wrong?
Example file:
internal class DocGenerator
{
public void CreateDocument()
{
var document = new RadFixedDocument();
var page = document.Pages.AddPage();
page.Size = new Size(595, 842); // A4 size
var editor = new FixedContentEditor(page);
//editor.Position.Translate(0, 0);
//FormSource barcode = FormSource.FromBarcode(Symbology1DType.Code128, "1234567890", width: 100, height: 100);
//editor.DrawForm(barcode, 100, 100);
editor.Position.Translate(20, 20);
// Title
editor.DrawText("P 24-07-2024 12:03");
editor.Position.Translate(300, 20);
editor.DrawText("Person X");
// Aisle and Pallet
editor.Position.Translate(20, 60);
editor.DrawText("AISLE");
editor.Position.Translate(100, 60);
editor.TextProperties.FontSize = 36;
editor.DrawText("A101");
editor.Position.Translate(20, 150);
editor.TextProperties.FontSize = 12;
editor.DrawText("P");
editor.Position.Translate(100, 150);
editor.TextProperties.FontSize = 36;
editor.DrawText("0237");
AddBarcode(editor);
editor.TextProperties.FontSize = 10;
var blackColor = new RgbColor(0, 0, 0);
Table table = new Table();
table.Borders = new TableBorders(
new Border(1, blackColor), // Top
new Border(1, blackColor), // Right
new Border(1, blackColor), // Bottom
new Border(1, blackColor) // Left
);
AddTableRows(table);
editor.Position.Translate(20, 240);
editor.DrawTable(table);
using (Stream output = File.OpenWrite(@"c:\temp\Output.pdf"))
{
PdfFormatProvider flowPdfProvider = new();
flowPdfProvider.Export(document, output, new TimeSpan(0,0,10));
}
}
private void AddBarcode(FixedContentEditor editor)
{
editor.Position.Translate(150, 150);
FormSource barcodeWithCenterCenterText = FormSource.FromBarcode(Symbology1DType.Code128, "1234567890", showText: true);
editor.DrawForm(barcodeWithCenterCenterText, 100, 100);
}
private void AddTableRows(Table table)
{
string[][] rows = new[]
{
new[] { "P", "PNo", "Brut", "Net", "Quality", "Pattern", "Pr", "Co", "Ac" },
new[] { "1000", "1001", "119,50", "118,70", "P1", "", "C1", "U1" },
new[] { "1000", "1002", "120,00", "119,40", "P1", "", "C1", "U1" },
new[] { "1000", "1003", "112,80", "112,10", "P1", "", "C1", "U1" },
new[] { "1000", "1004", "120,50", "120,00", "P1", "", "C1", "U1" },
new[] { "1000", "1005", "114,40", "113,50", "P1", "", "C1", "U1" },
new[] { "1000", "1006", "114,40", "113,70", "P1", "", "C1", "U1" },
new[] { "1000", "1007", "104,00", "102,60", "P1", "", "C1", "U1" },
new[] { "1002", "1008", "99,80", "99,40", "P2", "", "C2", "H1" },
new[] { "1002", "1009", "100,40", "100,00", "P2", "", "C2", "H1" },
new[] { "1002", "1010", "100,40", "99,40", "P2", "", "C2", "H1" },
new[] { "1002", "1011", "73,30", "72,50", "P2", "", "C2", "H1" },
new[] { "1002", "1012", "100,00", "99,80", "P2", "", "C2", "H1" },
new[] { "1002", "1013", "74,30", "73,80", "P2", "", "C2", "H1" },
new[] { "1002", "1014", "105,00", "104,30", "P2", "", "C2", "H1" },
};
foreach (var rowValues in rows)
{
var row = table.Rows.AddTableRow();
foreach (var value in rowValues)
{
var cell = row.Cells.AddTableCell();
cell.Blocks.AddBlock().InsertText(value);
}
}
}
}
https://www.telerik.com/document-processing-libraries/pdf-processing
Folks,
For a new project I need to generate a dynamic multi page pdf and one of the mandatory requirements is that some kind of template (html, xml, word) is used for easier maintance purposes.
Is it correct that for the Telerik PDF processing Library the only way to define pdfs is directly in the c# code and not some kind of template?
Thank you
Valentin
PdfProcessing - Developer Focused Examples - Telerik Document Processing
Hi,
we need to generate PDF/UA comform pdfs from scratch. Is that possible with Telerik PdfProcessing? I know that PDF/A works but we need PDF/UA specifically.
Thank you,
Valentin
The contents of an uploaded .docx file is being cut-off when converted to .pdf file.
Code snippet:
var fileFormatProvider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider();
using (MemoryStream inputFileStream = new MemoryStream())
{
this.fileSystemService.GetFile(documentInfo, inputFileStream);
if (fileFormatProvider != null)
{
var document = fileFormatProvider.Import(inputFileStream);
using (MemoryStream output = new MemoryStream())
{
var pdfProvider = new Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider();
pdfProvider.Export(document, output);
var newFile = new DocumentInfo()
{
NameWithPath = outputFileName,
DocumentLocation = documentInfo.DocumentLocation
};
this.fileSystemService.SaveFile(newFile, output);
}
}
Can someone confirm if this a Telerik side issue, or am I missing a setting or config?
Thanks!
I am trying to convert HTML to a PDF document with 0.25" margins. The left and right margins are being set correctly, but the top and bottom margins remain 0.5". My code is below, a screenshot of the generated PDF is attached.
StringBuilder sb = new StringBuilder();
foreach (string row in data)
sb.AppendLine(row);
HtmlFormatProvider provider = new HtmlFormatProvider();
RadFlowDocument html = provider.Import(sb.ToString());
foreach (Section section in html.Sections)
{
section.PageMargins = new Telerik.Windows.Documents.Primitives.Padding(24, 24, 24, 24);
// Code snippet from function that adds header inserted below
}
PdfFormatProvider pdf = new PdfFormatProvider();
return pdf.Export(html);
Thanks in advance for the help.
Darwin Pinder