Я пытаюсь преобразовать презентацию PowerPoint в отдельные файлы svg (по 1 для каждого слайда). Можно ли это сделать с помощью Microsoft Office 2010 PIA?
Если да, то есть ли учебник по использованию Microsoft Office 2010 PIA в Java?
Я пытаюсь преобразовать презентацию PowerPoint в отдельные файлы svg (по 1 для каждого слайда). Можно ли это сделать с помощью Microsoft Office 2010 PIA?
Если да, то есть ли учебник по использованию Microsoft Office 2010 PIA в Java?
Я не знаю готовых автоматических конвертеров, но мне удалось сохранить каждый отдельный слайд в формате PDF в Powerpoint, затем открыть PDF в Inkscape и повторно сохранить в формате SVG. И экспорт PDF в Powerpoint, и импорт PDF в Inkscape довольно сложны и дают хорошие результаты, а SVG является собственным форматом сохранения Inkscape, но может потребоваться некоторая настройка импортированного PDF в Inkscape для точного воспроизведения определенных элементов в оригинале.
Возможно, имело значение то, что у меня установлен Adobe Acrobat, но я не использовал плагин «Сохранить как Adobe PDF», а только обычное диалоговое окно «Сохранить как». Использование «Сохранить как Adobe PDF» дало худшие результаты.
У меня был больший успех при экспорте в виде расширенного метафайла Windows (.emf), который Inkscape также может читать.
Это было «лучше», потому что, когда я пытался импортировать экспортированный PDF-файл, Inkscape сгенерировал кучу файлов изображений. XML импортированного SVG также выглядел чище.
Я понимаю, что это старый вопрос, но недавно я попытался это сделать и нашел решение, которое очень хорошо работало с помощью Google Slides:
Open in Google Slides
, ИЛИFile -> Import Slides...
и вставьте нужные слайды.File -> Download as -> Scalable Vector Graphics (.svg, current slide)
.Вот как я это делаю (без Office PIA).
Sub ExportAllSlidesInPDF()
Dim SourceView, answer As Integer
Dim SourceSlides, NumPres, x As Long
Dim ThisSlideFileNamePDF As String
NumPres = Presentations.Count
If NumPres = 0 Then
MsgBox "No Presentation Open", vbCritical, vbOKOnly, "No Presentations Open"
End If
SourceView = ActiveWindow.ViewType
SourceSlides = ActivePresentation.Slides.Count
For x = 1 To SourceSlides
Presentations.Add
With ActivePresentation.PageSetup
.SlideHeight = Presentations(1).PageSetup.SlideHeight
.SlideWidth = Presentations(1).PageSetup.SlideWidth
End With
If ActiveWindow.ViewType <> ppViewSlide Then
ActiveWindow.ViewType = ppViewSlide
End If
Presentations(1).Windows(1).Activate
If ActiveWindow.ViewType <> ppViewSlideSorter Then
ActiveWindow.ViewType = ppViewSlideSorter
End If
ActivePresentation.Slides.Range(Array(x)).Select
ActiveWindow.Selection.Copy
Presentations(2).Windows(1).Activate
If ActiveWindow.ViewType <> ppViewSlide Then
ActiveWindow.ViewType = ppViewSlide
End If
ActiveWindow.View.Paste
ActiveWindow.Selection.Unselect
ThisSlideFileNamePDF = "Slide_" & x & ".pdf"
ActivePresentation.SaveAs ThisSlideFileNamePDF, ppSaveAsPDF
ActivePresentation.Close
Presentations(1).Windows(1).Activate
Next x
ActiveWindow.ViewType = SourceView
End Sub
Это можно улучшить (например, диалоги, больше элементов управления, добавить как надстройку), но в принципе это так.
Однострочный для Linux-бокса:
for file in *.pdf; do inkscape --without-gui "--file=$file" "--export-plain-svg=${file%%.*}.svg"; done
Это будет довольно сложно, на самом деле нет прямого способа сделать это (пожалуйста, поправьте меня, если я ошибаюсь!) - самый простой способ - распечатать в XPS, а затем преобразовать XAML (XPS == XAML + Zip файл) в файл SVG; это тоже не просто или просто, но сопоставление между XAML => SVG, вероятно, намного ближе.
Это не самый плавный перевод, но проверьте компонент pptx4j в docx4j для отображения большинства элементов в SVG. : http://dev.plutext.org/svn/docx4j/trunk/docx4j/src/pptx4j/java/org/pptx4j/samples/RenderAsSvgInHtml.java
В Mac OSX он не оптимизирован для использования из командной строки [1], поэтому вам нужно добавить абсолютный путь к вашим файлам:
for file in *.pdf; do inkscape --without-gui "--file=${PWD}/${file}" "--export-plain-svg=${PWD}/${file%%.*}.svg"; done
В противном случае вы получите это сообщение об ошибке:
** Сообщение: не удалось открыть файл PDF.
** (inkscape-bin:13267): ПРЕДУПРЕЖДЕНИЕ **: Не удается открыть файл: myfile.pdf (не существует)
** (inkscape-bin:13267): ПРЕДУПРЕЖДЕНИЕ **: Указанный документ myfile.pdf не может быть открыт (не существует или не является допустимым файлом SVG)
[1] Inkscape на OSX не может открыть файл PDF с помощью команды терминала