PDF
No edit summary
No edit summary
Line 3: Line 3:
If you need to convert the odt to PDF there are online services available. If you rather do this your self you can buy a third party library that has this ability or you can simply automate word (for odt) and have it save your odt as PDF.
If you need to convert the odt to PDF there are online services available. If you rather do this your self you can buy a third party library that has this ability or you can simply automate word (for odt) and have it save your odt as PDF.


'''Please note''' that this solution with automating Microsoft Word only works well in a client that can access Word locally, like the WPF client. If you want to do conversion to PDF server-side in Turnkey och the MDrivenServer we recommend a .Net component rather than trying to call Word. This is because the Word components don't work well being called from inside IIS.
'''Please note''' that this solution with automating Microsoft Word only works well in a client that can access Word locally, like the WPF client. If you want to do conversion to PDF server-side in Turnkey och the MDrivenServer we recommend an on line service or a .Net component rather than trying to call Word. This is because the Word components don't work well being called from inside IIS.


Here is an example of using a [[Serverside PDF|third party component]].
Here is an example of using a [[Serverside PDF|third party component]].

Revision as of 09:51, 13 March 2020

MDriven reports are created with open document text (odt) or open document spreadsheet formats (ods).

If you need to convert the odt to PDF there are online services available. If you rather do this your self you can buy a third party library that has this ability or you can simply automate word (for odt) and have it save your odt as PDF.

Please note that this solution with automating Microsoft Word only works well in a client that can access Word locally, like the WPF client. If you want to do conversion to PDF server-side in Turnkey och the MDrivenServer we recommend an on line service or a .Net component rather than trying to call Word. This is because the Word components don't work well being called from inside IIS.

Here is an example of using a third party component.

   Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();        
   foreach (var file in files)        
   {          
     if (System.IO.Path.GetExtension(file.FileName.ToLower()) == ".odt" )          
     {            
            if (File.Exists(file.FileName)) // Protect againts doublettes
            {
              _Document doc = word.Documents.Open(file.FileName);
              doc.Activate();
              string newfile;
              if (pdf)
              {
                newfile = System.IO.Path.ChangeExtension(file.FileName, ".pdf");
                doc.SaveAs2(newfile, WdSaveFormat.wdFormatPDF);
              }
              object oMissing = System.Reflection.Missing.Value;
              doc.Close(ref oMissing, ref oMissing, ref oMissing);
              File.Delete(file.FileName);
              file.FileName = newfile;
            }
        
        }
        Microsoft.Office.Interop.Word._Application app = word.Application;
        app.Quit();
      }
This page was edited 98 days ago on 02/10/2024. What links here