Hi! I'm generating an Excel document containing various fonts of "HelveticaNeue". Please see attached images for samples.
When exporting to pdf using PdfFormatProvider, the font styles are changed, e.g. bold style disappears. However, when exporting using Excel interops it works.
Code using interops:
public static void ExcelToPdf( string xlFilePath, string pdfOutputPath ){ try { Excel.Application app = new Excel.Application(); app.Visible = false; app.DisplayAlerts = false; Excel.Workbook wkb = app.Workbooks.Open( xlFilePath, ReadOnly: true ); wkb.ExportAsFixedFormat( Excel.XlFixedFormatType.xlTypePDF, pdfOutputPath ); wkb.Close(); app.Quit(); } catch ( Exception ex ) { Console.WriteLine( ex.StackTrace ); throw ex; }}
Code using Telerik PdfFormatProvider:
public override void Generate( DimensionTableInput input ){ CreateWorkbook(); CreateWorkbookStyles(); CreateWorksheets( input ); XlsxFormatProvider xlsxFormatProvider = new XlsxFormatProvider(); PdfFormatProvider pdfFormatProvider = new PdfFormatProvider(); // this will result in 1 page per sheet pdfFormatProvider.ExportSettings = new Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.Export.PdfExportSettings( ExportWhat.EntireWorkbook, true ); string xlsxFileName = $"{input.DocumentTitle}.xlsx"; string xlsxFullPath = $"{ Path.Combine( input.OutputPath, xlsxFileName )}"; ExportToFile( xlsxFormatProvider, xlsxFullPath ); string pdfFileName = $"{input.DocumentTitle}.pdf"; string pdfFullPath = $"{ Path.Combine( input.OutputPath, pdfFileName )}"; ExportToFile( pdfFormatProvider, pdfFullPath ); //Helpers.ExcelHelper.ExcelToPdf( xlsxFullPath, pdfFullPath );}private void ExportToFile( IWorkbookFormatProvider formatProvider, string fileName ){ using ( Stream fs = File.OpenWrite( fileName ) ) { formatProvider.Export( _workbook, fs ); }}
I can share the original Excel and Pdf files if needed.
Thanks in advance,
John
I need to read the data from an excel file (not formatted) and in order to do this I need to find a cell that contains a specific text.
I am trying to do this
FindOptions options = new FindOptions(){ FindWhat = "Record", MatchEntireCellContents = true};but it fails with:
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.Windows.Documents.Spreadsheet.Utilities.FindAndReplaceHelper.MoreThan(WorksheetCellIndex left, WorksheetCellIndex right, FindBy searchBy)
at Telerik.Windows.Documents.Spreadsheet.Utilities.FindAndReplaceHelper.<>c__DisplayClass3_0.<OrderResults>b__0(FindResult result)
at System.Linq.Enumerable.TakeWhileIterator[TSource](IEnumerable`1 source, Func`2 predicate)+MoveNext()
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
at Telerik.Windows.Documents.Spreadsheet.Utilities.FindAndReplaceHelper.OrderResults(FindOptions findOptions, IEnumerable`1 findResults)
at Telerik.Windows.Documents.Spreadsheet.Model.Workbook.Find(FindOptions findOptions)
While looking in the code I have discovered that is because the StartCell is null. Where does it say that the StartCell is mandatory? Also why is the StartCell mandatory?

Hi,
Is there a way to check if a pdf file is corrupted using pdfprocessing?
i'm working on a upload pdf file tool and it will be nice to check if the pdf is or not corrupted before upload. I've already check if the file header is pdf but some corrupted files gone thought.
Thanks!!


Hi,
I'm implementing custom cell editor using spreadprocessing to create a template for user to export and edit. After they are done, they import back using the Telerik built-in import function. I have no problem when creating the validation in the cells as I followed your example here:
https://demos.telerik.com/aspnet-ajax/spreadsheet/examples/custom-editors/defaultcs.aspx
When I tried to open the export file, I would get an error : "We found a problem with some content in "abcd.xlsx". Do you want us to try to recover as much as we can? ..." After I clicked 'Yes', my custom cell editors disappeared.
The same error occurs when I export from your demo. However, if I create a spreadsheet with validation from scratch, everything works perfectly.
Please help!
Thank you,
Helen

I'm using Telerik in an interop environment with C++ and trying to replace our old ZIP library. With the code below it appears to ZIP all files correctly except the last file always has some error with it like it isn't being written out properly. I've changed the number and type of files and the specific file type doesn't matter, the last one in the archive is always corrupted when i test the archive.
System::String^ sSource = gcnew System::String(m_sPath1); System::String^ sDest = gcnew System::String(sZipDest); System::IO::File^ file = nullptr; System::IO::Stream^ stream = file->Open(sDest, System::IO::FileMode::Create); Telerik::Windows::Zip::ZipArchive^ zarchive = gcnew Telerik::Windows::Zip::ZipArchive(stream, Telerik::Windows::Zip::ZipArchiveMode::Create,false,System::Text::Encoding::UTF8); Telerik::Windows::Zip::DeflateSettings^ compressionSettings = gcnew Telerik::Windows::Zip::DeflateSettings(); compressionSettings->CompressionLevel = Telerik::Windows::Zip::CompressionLevel::Best; compressionSettings->HeaderType = Telerik::Windows::Zip::CompressedStreamHeader::ZLib; pList3->ResetContent(); rc = 0; nCount = pList1->GetCount(); for (n = 0; n<nCount; n++) { pList1->GetText(n, sFileName); sFullyQualifiedFileNameFrom = fs.AppendWildcard(m_sPath1, sFileName); int nSel = pList3->AddString(sFileName); pList3->SetCurSel(nSel); pList3->UpdateWindow(); System::String^ sFull = gcnew System::String(sFullyQualifiedFileNameFrom.GetBuffer()); System::String^ sName = gcnew System::String(sFileName.GetBuffer()); Telerik::Windows::Zip::Extensions::ZipFile::CreateEntryFromFile(zarchive, sFull, sName, compressionSettings); int nFilesPercent = 100 * (n + 1) / nCount; m_prStatus.SetPos(nFilesPercent); } Sleep(5000); stream->Flush(); stream->Close();
Is there something else that should be done to finish the compression/writing of the last file when in the loop using CreateEntryFromFile?

Hi
I'm using RadFixedDocumentEditor to insert several line of text (editor.InsertRun and editor.InsertLine).
I use InsertLine and like HorizontalAlignment = left.
But how can I insert justified line of text ? Is it possible ??
Tanks

Hi
I'm using the next code to generate a simple pdf
RadFixedDocumentEditor editor = new RadFixedDocumentEditor(document)
editor.SectionProperties.PageSize = new Size(Unit.MmToDip(210), Unit.MmToDip(297));
editor.ParagraphProperties.HorizontalAlignment = HorizontalAlignment.Center;
editor.CharacterProperties.Font = FontsRepository.TimesRoman;
editor.InsertParagraph();
editor.InsertRun("Test è ò");
This issue is that the è and ò character are NOT printed at all.
Tnx ...

https://docs.telerik.com/devtools/document-processing/libraries/radwordsprocessing/cross-platform
Accessed from this page:
https://docs.telerik.com/devtools/document-processing/libraries/radwordsprocessing/getting-started
Thanks,
Joel
