XDoc.PDF
Features
Tech Specs
How-to C#
How-to VB.NET
Pricing
C# PDF: How to PDF Create PDF Export File and Page Process PDF Read PDF Write Form Process Document Protect Annotation & Drawing PDF Print WPF Viewer & Editor Work with Other SDKs Barcode Read Barcode Create OCR Twain
Create PDF from OpenOffice
  |  
Home ›› XDoc.PDF ›› C# PDF: Create PDF from OpenOffice

C#.NET PDF - Create PDF from OpenOffice in C# with XDoc.PDF SDK


Enable C#.NET Users to Create PDF OpenOffice Document (Odt, Ods, Odp) from PDF with .NET PDF Library in C# Class




Best C# OpenOffice to adobe PDF file converter SDK for Visual Studio .NET


Support .NET WinForms, ASP.NET MVC in IIS, ASP.NET Ajax, Azure cloud service, DNN (DotNetNuke), SharePoint


A professional .NET PDF control able to batch convert multiple OpenOffice documents to PDF files in C#.NET


Convert OpenOffice Text Document to PDF with embedded fonts


Export PDF from OpenOffice Spreadsheet data


Create PDF document from OpenOffice Presentation in both .NET WinForms and ASP.NET application


An advanced .NET control to change ODT, ODS, ODP forms to fillable PDF formats in Visual C# .NET


Online source code for C#.NET class


Free library and components for .NET framework






C# convert single open office (odt, odp) file to PDF


Note: When you get the error "Could not load file or assembly 'RasterEdge.Imaging.Basic' or any other assembly or one of its dependencies. An attempt to load a program with an incorrect format", please check your configure as follows:

       

       If you are using x64 libraries/dlls, Right click the project -> Properties -> Build -> Platform target: x64.

       

       If using x86, the platform target should be x86.




        #region odt file to pdf (file to file)
        internal static void odtToPdf()
        {
            String inputPath = @"C:\demo.odt";
            String outputPath = @"C:\output.pdf";
            //convert .docx to .pdf
            ODTDocument doc = new ODTDocument(inputPath);
            doc.ConvertToDocument(DocumentType.PDF, outputPath);
        }
        #endregion

        #region odt to pdf (stream to stream)
        internal static void odtStreamToPdf()
        {
            String inputPath = @"";
            byte[] arr = File.ReadAllBytes(inputPath);
            Stream inputStream = new MemoryStream(arr);
            ODTDocument doc = new ODTDocument(inputStream);
            Stream outputStream = new MemoryStream();
            doc.ConvertToDocument(DocumentType.PDF, outputStream);
        }
        #endregion






        #region odp file to pdf (file to file)
        internal static void odpToPdf()
        {
            String inputPath = @"C:\demo.odp";
            String outputPath = @"C:\output.pdf";
            //convert .docx to .pdf
            ODPDocument doc = new ODPDocument(inputPath);
            doc.ConvertToDocument(DocumentType.PDF, outputPath);
        }
        #endregion

        #region odp to pdf (stream to stream)
        internal static void odpStreamToPdf()
        {
            String inputPath = @"";
            byte[] arr = File.ReadAllBytes(inputPath);
            Stream inputStream = new MemoryStream(arr);
            ODPDocument doc = new ODPDocument(inputStream);
            Stream outputStream = new MemoryStream();
            doc.ConvertToDocument(DocumentType.PDF, outputStream);
        }
        #endregion




C# convert two or multiple open office (odt, odp) files to PDF (batch convert)





        #region odt to pdf (batch files and single tread)
        internal static void odtFilesToPdf()
        {
            String inputDirectory = @"C:\input\";
            String outputDirectory = @"C:\output\";
            String[] files = Directory.GetFiles(inputDirectory, "*.odt");
            foreach (String filePath in files)
            {
                int startIdx = filePath.LastIndexOf("\\");
                int endIdx = filePath.LastIndexOf(".");
                String docName = filePath.Substring(startIdx + 1, endIdx - startIdx - 1);
                ODTDocument doc = new ODTDocument(filePath);
                doc.ConvertToDocument(DocumentType.PDF, outputDirectory + docName + ".pdf");
            }
        }
        #endregion

        #region odt to pdf (batch file and multiple threads)
        internal static void odtfiles2pdf()
        {
            String inputDirectory = @"C:\input\";
            String outputDirectory = @"C:\output\";
            String[] files = Directory.GetFiles(inputDirectory, "*.odt");
            List<ConversionArgs> args = new List<ConversionArgs>();
            foreach (String filePath in files)
            {
                int startIdx = filePath.LastIndexOf("\\");
                int endIdx = filePath.LastIndexOf(".");
                String docName = filePath.Substring(startIdx + 1, endIdx - startIdx - 1);
                ConversionArgs arg = new ConversionArgs(filePath, outputDirectory + docName + ".pdf");
                args.Add(arg);
            }

            List<Thread> threads = new List<Thread>();
            foreach (ConversionArgs arg in args)
            {
                Thread thread = new Thread(odtToPdfThread);
                thread.Start(arg);
            }
            foreach (Thread thread in threads)
            {
                thread.Join();
            }
        }

        private static void odtToPdfThread(object args)
        {
            ConversionArgs toPdfArgs = (ConversionArgs)args;
            ODTDocument srcDoc = new ODTDocument(toPdfArgs.SrcPath);
            if (srcDoc != null)
            {
                srcDoc.ConvertToDocument(DocumentType.PDF, toPdfArgs.DstPath);
                srcDoc.Dispose();
            }
        }
        #endregion






        #region odp to pdf (batch files and single tread)
        internal static void odpFilesToPdf()
        {
            String inputDirectory = @"C:\input\";
            String outputDirectory = @"C:\output\";
            String[] files = Directory.GetFiles(inputDirectory, "*.odp");
            foreach (String filePath in files)
            {
                int startIdx = filePath.LastIndexOf("\\");
                int endIdx = filePath.LastIndexOf(".");
                String docName = filePath.Substring(startIdx + 1, endIdx - startIdx - 1);
                ODPDocument doc = new ODPDocument(filePath);
                doc.ConvertToDocument(DocumentType.PDF, outputDirectory + docName + ".pdf");
            }
        }
        #endregion

        #region odp to pdf (batch file and multiple threads)
        internal static void odpfiles2pdf()
        {
            String inputDirectory = @"C:\input\";
            String outputDirectory = @"C:\output\";
            String[] files = Directory.GetFiles(inputDirectory, "*.odp");
            List<ConversionArgs> args = new List<ConversionArgs>();
            foreach (String filePath in files)
            {
                int startIdx = filePath.LastIndexOf("\\");
                int endIdx = filePath.LastIndexOf(".");
                String docName = filePath.Substring(startIdx + 1, endIdx - startIdx - 1);
                ConversionArgs arg = new ConversionArgs(filePath, outputDirectory + docName + ".pdf");
                args.Add(arg);
            }

            List<Thread> threads = new List<Thread>();
            foreach (ConversionArgs arg in args)
            {
                Thread thread = new Thread(odpToPdfThread);
                thread.Start(arg);
            }
            foreach (Thread thread in threads)
            {
                thread.Join();
            }
        }

        private static void odpToPdfThread(object args)
        {
            ConversionArgs toPdfArgs = (ConversionArgs)args;
            ODPDocument srcDoc = new ODPDocument(toPdfArgs.SrcPath);
            if (srcDoc != null)
            {
                srcDoc.ConvertToDocument(DocumentType.PDF, toPdfArgs.DstPath);
                srcDoc.Dispose();
            }
        }
        #endregion




C# combine multiple open office (odt, odp) files, and convert to PDF





        #region combine and convert odt to single pdf
        internal static void combineAndConvertOdtToPdf()
        {
            String[] files = new String[] { @"C:\demo1.odt", @"C:\demo2.odt", @"C:\demo3.odt" };
            String outputFilePath = @"C:\output.pdf";
            List<MemoryStream> streams = new List<MemoryStream>();
            foreach (String file in files)
            {
                MemoryStream outputStream = new MemoryStream();
                ODTDocument doc = new ODTDocument(file);
                doc.ConvertToDocument(DocumentType.PDF, outputStream);
                streams.Add(outputStream);
            }
            PDFDocument.CombineDocument(streams.ToArray(), outputFilePath);
        }
        #endregion






        #region combine and convert odp to single pdf
        internal static void combineAndConvertOdpToPdf()
        {
            String[] files = new String[] { @"C:\demo1.odp", @"C:\demo2.odp", @"C:\demo3.odp" };
            String outputFilePath = @"C:\output.pdf";
            List<MemoryStream> streams = new List<MemoryStream>();
            foreach (String file in files)
            {
                MemoryStream outputStream = new MemoryStream();
                ODPDocument doc = new ODPDocument(file);
                doc.ConvertToDocument(DocumentType.PDF, outputStream);
                streams.Add(outputStream);
            }
            PDFDocument.CombineDocument(streams.ToArray(), outputFilePath);
        }
        #endregion




C# insert open office (odt, odp) file into pdf document, and create a new PDF file





        #region insert odt to pdf
        internal static void insertOdtToPdf()
        {
            String filePath = @"C:\demo.odt";
            ODTDocument doc = new ODTDocument(filePath);
            MemoryStream stream = new MemoryStream();
            doc.ConvertToDocument(DocumentType.PDF, stream);
            PDFDocument pdf = new PDFDocument(stream);
            int pageCount = pdf.GetPageCount();
            List<BasePage> pages = new List<BasePage>();
            for (int i = 0; i < pageCount; i++)
            {
                pages.Add(pdf.GetPage(i));
            }
            String outputPdf = @"C:\output.pdf";
            PDFDocument desDoc = new PDFDocument(outputPdf);
            int insertLocation = 2;
            desDoc.InsertPages(pages.ToArray(), insertLocation);
            desDoc.Save(@"C:\desDocumcnet.pdf");
        }
        #endregion






        #region insert odp to pdf
        internal static void insertOdpToPdf()
        {
            String filePath = @"C:\demo.odp";
            ODPDocument doc = new ODPDocument(filePath);
            MemoryStream stream = new MemoryStream();
            doc.ConvertToDocument(DocumentType.PDF, stream);
            PDFDocument pdf = new PDFDocument(stream);
            int pageCount = pdf.GetPageCount();
            List<BasePage> pages = new List<BasePage>();
            for (int i = 0; i < pageCount; i++)
            {
                pages.Add(pdf.GetPage(i));
            }
            String outputPdf = @"C:\output.pdf";
            PDFDocument desDoc = new PDFDocument(outputPdf);
            int insertLocation = 2;
            desDoc.InsertPages(pages.ToArray(), insertLocation);
            desDoc.Save(@"C:\desDocumcnet.pdf");
        }
        #endregion




.NET Class Namespace Required



In order to run the sample codes, the following steps would be necessary.


Add necessary references:


  RasterEdge.Imaging.Basic.dll


  RasterEdge.Imaging.Basic.Codec.dll


  RasterEdge.Imaging.Drawing.dll


  RasterEdge.Imaging.Font.dll


  RasterEdge.Imaging.Processing.dll


  RasterEdge.XImage.Raster.dll


  RasterEdge.XImage.Raster.Core.dll


  RasterEdge.XDoc.PDF.dll


  RasterEdge.XDoc.Office.Inner.Common.dll


  RasterEdge.XDoc.Office.Inner.Office03.dll


  RasterEdge.XDoc.Word.dll


  RasterEdge.XDoc.Excel.dll


  RasterEdge.XDoc.PowerPoint.dll


Use corresponding namespaces;


  using RasterEdge.Imaging.Basic;


  using RasterEdge.XDoc.Word;


  using RasterEdge.XDoc.Excel;


  using RasterEdge.XDoc.PowerPoint;





public override void ConvertToDocument(DocumentType targetType, String filePath)

Description:
     Convert to PDF/TIFF and save it on the disk.

Parameters:



public override void ConvertToDocument(DocumentType targetType, Stream stream)

Description:
     Convert to PDF/TIFF and save it into stream.

Parameters:



public override void ConvertToDocument(DocumentType targetType, float zoomValue, String filePath)

Description:
     Convert to PDF/TIFF with specified zoom value and save it on the disk.

Parameters:



public override void ConvertToDocument(DocumentType targetType, float zoomValue, Stream desStream)

Description:
     Convert to PDF/TIFF with specified zoom value and save it into stream.

Parameters:



public override void ConvertToDocument(DocumentType targetType, int resolution, String filePath)

Description:
     Convert to PDF/TIFF with specified resolution and save it on the disk.

Parameters:



public override void ConvertToDocument(DocumentType targetType, int resolution, Stream desStream)

Description:
     Convert to PDF/TIFF with specified resolution and save it into stream.

Parameters:



public override void ConvertToDocument(DocumentType targetType, ImageCompress compression, String filePath)

Description:
     Convert to PDF/TIFF with specified compression method and save it on the disk.

Parameters:



public override void ConvertToDocument(DocumentType targetType, ImageCompress compression, Stream desStream)

Description:
     Convert to PDF/TIFF with specified resolution and save it into stream.

Parameters:



public override void ConvertToDocument(DocumentType targetType, string filePath, ImageOutputOption options)

Description:
     Convert to PDF/TIFF with specified settings through options and save it on the disk.

Parameters:



public override void ConvertToDocument(DocumentType targetType, Stream desStream, ImageOutputOption options)

Description:
     Convert to PDF/TIFF with specified resolution and save it into stream.

Parameters: