2016-05-05 23 views
7

Czy ktoś wie, jak style znaków są dziedziczone w pliku pptx? Wiem, że to idzie co najmniej tak:Dziedziczenie stylu PPTX

  1. Lokalne rekwizyty run (a:rPr)
  2. Lokalne Ustęp rekwizyty (a:pPr/a:defRPr)
  3. Kształt Ustęp rekwizyty (a:lstStyle/a:lvlXpPr/a:defRPr)
  4. Ustęp rekwizyty z układu?
  5. Wzorzec slajdów Ustęp rekwizyty (p:txStyles/(p:titleStyle|p:bodyStyle|p:otherStyle)/a:lvlXpPr/a:defRPr)
  6. slajdów tematyczne (a:objectDefaults/(a:spDef|a:lnDef|a:txDef)/a:lstStyle/a:lvlXpPr/a:defRPr)
  7. Prezentacja domyślne (p:defaultTextStyle/a:lvlXpPr/a:defRPr)

Ale gdy porównać je z wynikami innych aplikacji, to nie pasuje . Z przyczyn technicznych nie mogę korzystać z biblioteki, która już to robi dla mnie, sama czytam xml. Źródło POI apache ma pewne oznaczenia TODO: w odpowiednich obszarach i mam problemy ze zrozumieniem kodu LibreOffice.

Edycja: Aby wyjaśnić dalej, chcę znaleźć absolutne właściwości run, a nie względne właściwości run. Na to można pomyśleć tak: masz kilka folii do rzutnika. Chcę zobaczyć obraz utworzony ze wszystkich stron, a nie tylko z lokalnego.

+0

co próbujesz zrobić? chcesz programowo zmienić niektóre style? –

+0

Najbardziej lokalne style, ale muszę wiedzieć, co definiują rodzice, więc nie będę zbędny. –

+0

Myślę, że powinieneś zajrzeć do części tematycznej i jak się do niej odnieść w dowolnym miejscu ... czy próbowałeś sprawdzić część tematyczną? Jeśli możesz podać nam przykład tego, co chcesz zrobić, pomoże to lepiej zrozumieć problem i wypróbować różne rzeczy. –

Odpowiedz

0

Przypuszczam, że pisząc dziedziczenie w tym kontekście masz na myśli, że jeden styl jest oparty na innym. Wygląda na to, że można użyć właściwości BasedOn, aby zweryfikować to programowo.

Znalazłem artykuł na ten temat z przykładowym kodem automatycznie wykrywającym hierarchię stylów w wybranym dokumencie. Można go znaleźć tutaj: https://blogs.msdn.microsoft.com/ericwhite/2010/03/29/testing-for-base-styles-in-open-xml-wordprocessingml-documents/. Kod napisany dla plików Word (DOCX), ale przypuszczam, że powinien być bardzo podobny do programu PowerPoint (PPTX). Jeśli masz jakiekolwiek problemy z używaniem kodu do pliku PPTX, daj mi znać, a spróbuję pomóc.

Zgodnie z tymi informacjami https://msdn.microsoft.com/en-us/library/office/gg188064.aspx#sectionSection5, "style znaków" mogą się odnosić tylko do typu elementów run i nie można ich przywoływać akapitami.

Można również znaleźć artykuł o stylach spadków tutaj: https://blogs.msdn.microsoft.com/ericwhite/2009/10/28/open-xml-wordprocessingml-style-inheritance-post-4/

Choć nie stanowią odpowiedzi na swoje pytanie bezpośrednio, zawiera dodatkowe informacje związane ze stylami dziedziczenia, więc mogą pojawić się przydatne dla Ciebie.

+0

Dzięki, ale pliki pptx nie mają tabel stylów, a właściwości uruchamiania pptx nie mają definicji dla 'BasedOn' –