Chyba każdy kto próbował tworzyć "programistycznie" dokumenty docx (z wykorzystaniem OpenXML Format SDK lub bez SDK) na pewno spotkał się z problemem, że nie wiadomo jakich elementów użyć i jak je poustawiać, by uzyskać oczekiwany efekt. Niestety w dokumentacji opisane są co oznaczają poszczególne elementy, ale brakuje przykładów lub dokładniejszych opisów ich wykorzystania. Na szczęście jest pewna pomoc, którą można wykorzystać.
Przypomnijmy sobie jak zbudowany jest oparty o format Open XML? Przecież jest to zestaw plików (głównie XML), który następnie jest spakowany przy pomocy standardowego algorytmu zip, co w efekcie daje plik wynikowy. Dlatego można dowolnemu plikowi opartemu o ten format zmienić rozszerzenie (lub dodać kolejne) na zip, a następnie rozpakować zawartość tak spreparowanego archiwum. Tak na marginesie dodam, że w przypadku formatu rywala, czyli ODF (Open Document Format) idea pakowania algorytmem zip jest dokładnie taka sama.
Zobaczmy na przykład pliku Test.docx, któremu dodałem rozszerzenie zip i w efekcie otrzymałem plik Test.docx.zip, którego zawartość przedstawiona jest poniżej:
Test.docx.zip | [Content_Types].xml | +---docProps | app.xml | core.xml | +---word | | document.xml | | fontTable.xml | | numbering.xml | | settings.xml | | styles.xml | | webSettings.xml | | | +---media | | image1.gif | | image2.gif | | image3.gif | | image4.gif | | image5.gif | | image6.gif | | | +---theme | | theme1.xml | | | \---_rels | document.xml.rels | \---_rels .rels
Najbardziej oczywiście interesującym nas plikiem będzie plik: word\document.xml, który będzie zawierał właściwy dokument. Plik ten w przypadku formatu Word 2007 (docx) jest zgodny z językiem WordProcessingML. Właśnie tam możemy znaleźć informacje na temat układu elementów XML, które w efekcie dają efekt, jaki widzimy podczas edycji tego dokumentu w edytorze Word.
Reasumując gdy nie wiemy jakich elementów użyć (i jak je poukładać) by uzyskać dokument Word o zadanej strukturze, można tą strukturę stworzyć przy pomocy edytora Word , a następnie "rozpakować" plik i podejrzeć jak to jest zrobione, Być może dla niektórych czytelników to banał, ale przyznam, że sam z tej metody korzystam. Jest ona prosta i skuteczna.
Informacje zawarte w tym wpisie bardzo mnie zaciekawiły.
OdpowiedzUsuń