I have a word document (XWPFDocument). It contains some visio diagrams.
I want to update the text of these diagrams dynamically.
Can I do that using Apache POI?
Unfortunately not. According to Apache POI API docs, there is only read support for the Visio XML document:
http://poi.apache.org/apidocs/org/apache/poi/xdgf/usermodel/XmlVisioDocument.html
public class XmlVisioDocument
extends POIXMLDocument
This is your high-level starting point for working with Visio XML documents (.vsdx). Currently, only read support has been implemented, and the API is not mature and is subject to change. For more information about the visio XML format (with an XSD 1.0 schema), you can find documentation at https://msdn.microsoft.com/en-us/library/hh645006(v=office.12).aspx That document lacks in some areas, but you can find additional documentation and an updated XSD 1.1 schema at https://msdn.microsoft.com/en-us/library/office/jj684209(v=office.15).aspx Each provides different details, but the SharePoint reference has better documentation and is more useful.
Additionally, from reading the API, it doesn't look like it would be possible to access the Visio diagram embedded in the Word document.
Related
Anyone know how to tag text objects from Aspose.Words MailMerge, this is to be compatible with the PDF/UA standard. I would appreciate any code samples and/or links
You should simply enable PdfSaveOptions.ExportDocumentStructure option. Aspose.Words exports PDF/UA compatible document structure.
I have a word template which has multiple sections( tables, parragraphs, lists, etc.. ). The idea is that users fill the template and upload it to a asp.net application. I need the application to read the information section by section. So, is there a way to name the section of a word document and identify it by using c#?
I think it is much better to create a custom web page for filling fields there and constructing a Word document on the server-side using the Open XML SDK, see Welcome to the Open XML SDK 2.5 for Office for more information.
However, you may consider using bookmarks or content controls as a marker for sections.
Otherwise, you'll need to parse the uploaded document by searching for keywords presented in the template.
Cant find anything about it in their documentation. They state that they support xml, but they doesn't mention openxml based document formats.
On the top of that I couldnt manage to create mergefields in excel as the same way I was able to do it in docx.
FreeMarker doesn't care what kind of XML that is. XML is just a tree of nodes as far as it's concerned. It's a low level thing.
Problem - Generate a word document from information retrieved from database.
My solution - Create a word document template add fields/tags in places where values need to be inserted. The template will require tables and charts as well. Using document reflector that comes with open office xml sdk reflect on the document template and extract the w:document section and port it to C#. The rest of the logic revolves simply around finding the fields/tags, replacing them, etc. Very simple approach but not very flexible!
Challenge - I want the user to have the ability to customize the template or the generated document output. But this will not be possible if I embed the template logic in code.
Any other possibilities - I looked around at Templating using T4 and RazorEngine but could not find any concrete examples of how to create word documents using these two technologies.
Now what is the best approach?
I would really appreciate your inputs on what is the best and most flexible way to generate word documents using C#.
I'm actually working a project where the business users are designing word template with mail merge fields and we are populating the values using a 3rd party software package Aspose Words. http://www.aspose.com/categories/.net-components/aspose.words-for-.net/default.aspx
The software includes a library for merging data from datatables into the mail merge fields in the word document.
I also wrote a customized word task pane add in that retrieves data views from the database and lists the fields in a drag/drop interface that mimics a crystal or sql report writing interface.
Probably would of been easier to just use crystal or sql reporting though...
It's certainly possible to generate the contents of an Office doc using T4 or Razor and then package it up. The TestScribe powertool for Visual Studio Test Manager does just that with T4. There is a thread by Sally Cavanagh in the Q&A on this page http://visualstudiogallery.msdn.microsoft.com/e79e4a0f-f670-47c2-9b8a-3b6f664bf4ae that suggests a way to look at the T4 templates that it uses, which might get you jump-started.
Here is sample to play word document template with C#
You could use a content control databinding approach.
XML Mapping Task Pane for Word 2007/2010 is an authoring tool.
To create an instance document, you just attach your XML data file.
If the resulting documents will be opened in Word, that is all that is required: Word will bind the data itself. If your consuming application is not Word, you might want to resolve the bindings yourself (eg via Open XML SDK).
Content control databinding isn't intended to support repeats and conditionals. For a way to do that, look at my OpenDoPE convention
Take a look at Templater. Disclamer: I'm the author.
Check out JODReports or Docmosis. They are Java based but some of the templating features and output options might be ideal. You can call the command line interfaces unless they also have something better to reach from C#.
I have a document library in Sharepoint 2010. Is it possible to click on the check boxes next to a document name and convert the documents to pdf? I can't seem to find an option to do this. If not can I programmatically generate the pdf's and add them to the library.
Actually, if you have some programming skills you can create your own EventReceiver for every item added/updated to convert a word document to a PDF. By using Word Automation Services.
check this out:
http://msdn.microsoft.com/en-us/library/office/ff181518.aspx
You'll need a third party product as PDF Conversion doesn't come with SharePoint, unless you count the very basic MS-Word only conversion that is available in some editions of SharePoint 2010.
Have a look at this product, it does exactly what you want, including the checkboxes in SP2010, and can be used via workflows and web service calls as well.
Additional information as well as real world examples can be found here.
Disclaimer, I work for this vendor so it is a shameless plug. Yet it answers your question :-)
Alice,
Or you can use dynamic PDF documents, which can be integrated with Document Library as content types. Have a look at this product: it allows submitting Pdf forms using Adobe Reader (no Reader Extensions are necessary).
Disclaimer: I am using this product and happy with it. It has some limitations but nothing drastic.
Robert
MS Word provides the convert function, you can open the Word document and save as PDF format in the document library.
Also, there are some third-part tools can help you to solve this issue, such as BoostSolutions PDF Converter.