Thanks for looking into this. If you can figure out how to wrap this into an easy-to-use class, certainly submit a patch on bugzilla to get this added to the baseline. I'd be happy to help you get this integrated. On May 18, 2016 3:55 AM, "Алексей Ушаровский" <[email protected]> wrote:
> I guess, i found something by reading sources of Apache POI library! > > QName ALTCHUNK$58 = new QName ( " > http://schemas.openxmlformats.org/wordprocessingml/2006/main" , > "altChunk" ) ; > QName ID$2 = new QName ( " > http://schemas.openxmlformats.org/officeDocument/2006/relationships" , > "id" ) ; > > CTDocument1 ctDoc = doc. getDocument ( ) ; > CTBodyImpl b = ( CTBodyImpl ) ctDoc. getBody ( ) ; > XmlComplexContentImpl ac = ( XmlComplexContentImpl ) b. get_store ( ) . > add_element_user ( ALTCHUNK$58 ) ; > > org. apache . xmlbeans . SimpleValue target = ac. get_store ( ) . > add_attribute_user ( ID$2 ) ; > target. setStringValue ( id ) ; > > This code is creating correct altChank element in the body of docx > document. Now I'm thinking, how to put another docx inside this one with > correct content type an relation object. > How I understand, this way is usful for many different low level > modifications of OOXML. > > >Вторник, 17 мая 2016, 22:43 +03:00 от Алексей Ушаровский <[email protected] > >: > > > > > >Great thanks for explaining your experience. I'm only beginning to work > with office document in Java and now searching for good library for my > task. It's very interesting to read what you've written. > >Have you ever work with docx4j library? > >-- > >Отправлено из Mail.Ru для Android вторник, 17 мая 2016г., 21:20 +03:00 от > "Javen O'Neal" < [email protected] > : > > > >>I haven't worked with POI's XWPF package yet, so your guess is better > than > >>mine. > >> > >>However, I would assume that POI doesn't support document concatenating > and > >>that people have written their own code to define how they want to > combine > >>the documents. For example, how do you combine two documents with > different > >>headers and footers, different style themes, different XML namespaces, > >>different VBA macros, etc? How do you resolve collisions of named fields? > >>Do you start the second document on the last page of the first document > or > >>on a new page? How do you handle different page layouts, margins, and > >>printer settings? Combining bibliographies? > >> > >>It might be possible to write a function that indisputably combines two > >>very simple documents, but it'd be tricky to implement something that > >>satisfies everyone's needs that handles complex documents. > >> > >>If all your after is merging the paragraphs, then you could for-loop over > >>the paragraphs and copy them into the first document, creating a new page > >>before you start copying if that's the behavior you want. If you control > >>the format of the files that will be merged (say documents are rich text > >>plus pictures, text boxes, and tables), you might be able to get away > with > >>this. If you don't have control, this would take a lot of effort with > POI. > >> > >>If you're just after the text content, look at XWPFWordExtractor > >> > http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/extractor/XWPFWordExtractor.java?view=markup > >> > >>If you're willing to embed a document rather than joining a document, you > >>could use UpdateEmbeddedDoc > >> > http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/xwpf/usermodel/UpdateEmbeddedDoc.java?view=markup > >> > >>For non-POI solutions: > >>Look at what LibreOffice/OpenOffice do, both in application behavior and > >>source code. I think they have a headless API if you're still evaluating > >>software libraries that meet your needs. > >> > >>If you have MS Office installed on your system, you could use VBA scripts > >>to automate this. You could also write code that remote controls Word > over > >>a COM port. > >> > >>Searching on Google for "altChunk POI", someone said Aspose (a commercial > >>$$$ library) has support for altChunk. I recently migrated 3 software > >>products at my company from Aspose Cells to POI Spreadsheet due to > >>increased licensing costs and poorly documented API, no source code > access > >>(to make up for the API documentation), inability to add missing features > >>with a forked version, and lack of transparency of memory/speed > performance > >>due to closed source. > >> > >>Best of luck solving your problem! > >>On May 17, 2016 09:29, "Алексей Ушаровский" < [email protected] > wrote: > >> > >> > >>And another question. Is there any standard way to join two docx files > into > >>one document by POI. Unfortunately i found nothing about it in the > internet. > >>-- > >>Отправлено из Mail.Ru для Android вторник, 17 мая 2016г., 18:55 +03:00 от > >>Алексей Ушаровский < [email protected] > : > >> > >>> > >>>Thank you, Javen! > >>>How I understand problem is not only on hi level interface. POI has it > own > >>classes which implement many but not all OOXML items. > >>>-- > >>>Отправлено из Mail.Ru для Android вторник, 17 мая 2016г., 18:49 +03:00 > от > >>"Javen O'Neal" < [email protected] > : > >>> > >>>>Yes, if you're willing to write using CT* classes. > >>>> > >> > http://www.atetric.com/atetric/javadoc/org.apache.poi/ooxml-schemas/1.1/org/openxmlformats/schemas/wordprocessingml/x2006/main/CTBody.html > >>>> > >>>>I couldn't find a higher-level abstraction on top of this in POI > though. > >>>>If you get something working, please submit it back to POI so that your > >>>>work can benefit others with a similar problem. > >>>>On May 17, 2016 8:34 AM, "Алексей Ушаровский" < [email protected] > > wrote: > >>>> > >>>> Hello! > >>>>Is it possible to use altChunk OOXML items in docx by POI library? > >>>> > >>>>-- > >>>>Regards, > >>>>Alex > >
