ppt/pptx 파일을 HTML 형식으로 변환하는 다소 원유 도구를 만들려고합니다.
불행히도 apache poi는 파워 포인트 파일 작업을위한 통합 프로그래밍 모델을 제공하지 않으며 각 형식을 구문 분석하기 위해 코드를 작성해야한다는 것을 알게되었습니다.
필자는 pptx 파일 지원이 ppt 지원보다 훨씬 제한적이라고 생각합니다. 내가 직면 한 한 가지 문제는 pptx 슬라이드의 배경 (색상, 패턴, 배경 이미지)에 관한 정보를 얻는 것입니다.
XSLFBackground (pptx api) 클래스가 해당 Background 클래스 (ppt api)보다 훨씬 제한적인 것으로 나타났습니다.
누구든지 아파치 poi를 사용하여 pptx 슬라이드 배경에 관한 정보를 얻을 수 있습니까?
또한이 주제에 대한 유용한 자료를 알려주고 있습니다. 나는 apache poi javadoc을 거의 사용할 수 없으며 poi 웹 사이트의 예제는 기본적인 기능만을 다루고 있습니다.
안부, 세르주apache poi를 사용하여 pptx 슬라이드에서 백그라운드 데이터를 얻는 방법
3
A
답변
4
배경 요소의 함량이 Office Open Schema에서 설명한 경우 - zip-link at the bottom 및 내부 PML-slide.xsd를 확인한다.
스키마를 사용하면 usermodel 인터페이스 아래의 XML bean을 이해할 수 있습니다. 선발 투수의 경우
, 여기에 PNG 파일로 슬라이드를 내보내는 또한 배경 이미지를 읽기의 예입니다 (당신의 HTML 내보내기 어쩌면 유용한?) :import java.awt.*;
import java.awt.geom.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;
import org.apache.poi.xslf.usermodel.*;
import org.openxmlformats.schemas.presentationml.x2006.main.CTBackground;
public class PptxBackground {
public static void main(String[] args) throws Exception {
// sorry for the content, but it was one of the first non-commercial google matches ...
URL url = new URL("http://newkilpatrickblog.typepad.com/files/sunday_june_03_2012_trinity_and_majesty_communion.pptx");
InputStream is = url.openStream();
XMLSlideShow ss = new XMLSlideShow(is);
is.close();
XSLFSlide sld = ss.getSlides()[0];
XSLFBackground bg = sld.getBackground();
CTBackground xmlBg = (CTBackground)bg.getXmlObject();
String relId = xmlBg.getBgPr().getBlipFill().getBlip().getEmbed();
XSLFPictureData pic = (XSLFPictureData)sld.getRelationById(relId);
String filename = pic.getFileName();
byte fileBytes[] = pic.getData();
/***** or convert the slides to images ****/
double zoom = 2; // magnify it by 2
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Dimension pgsize = ss.getPageSize();
XSLFSlide slides[] = ss.getSlides();
for (int i = 0; i < slides.length; i++) {
BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slides[i].draw(graphics);
FileOutputStream out = new FileOutputStream("slide-" + (i+1) + ".png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}
}
}
+0
감사합니다. 지금 당장은 XSLFBackground.draw와 같은 간단한 것으로 배경을 다른 이미지로 저장하는 방법을 배우기를 희망합니다. –
관련 문제
- 1. apache poi를 사용하여 pptx 슬라이드 노트 텍스트를 가져 오는 방법은 무엇입니까?
- 2. 간단한 슬라이드에서 여러 데이터를 얻는 방법
- 3. Apache POI를 사용하여 xlsx 파일의 그림 위치를 얻는 방법
- 4. Apache POI를 사용하여 xls 파일의 이름을 얻는 방법
- 5. Apache POI를 사용하여 MS Excel 용 셀의 별칭을 얻는 방법
- 6. apache-poi를 사용하여 빈 셀을 처리하는 방법
- 7. Apache POI를 사용하여 .pptx 파일의 기존 사용자 지정 속성/속성을 변경하는 방법
- 8. . apache poi를 사용하여 .xlsx 파일을 쓰는 방법
- 9. Apache POI를 사용하여 Java에서 반복을 멈추는 방법
- 10. Apache POI를 사용하여 Word를 HTML로 변환
- 11. Apache POI를 사용하여 Excel에 저장 번호
- 12. footer를 제외한 ppt, pptx 파일에서 텍스트를 추출하는 방법, apache poi를 사용하는 슬라이드 번호?
- 13. Apache Poi를 사용하여 doc 파일을 html로 변환하십시오.
- 14. apache poi를 사용하여 Excel에서 숨겨진 셀 감지
- 15. Apache POI를 사용하여 Java로 Excel로 내보내기
- 16. Apache Poi를 사용하여 Excel 시트에 키 값을 인쇄하는 방법
- 17. Apache POI를 사용하여 Excel에서 셀 위치 찾기
- 18. Apache POI를 사용하여 Excel에서 막대 차트 만들기
- 19. Apache POI를 사용하여 XWPFParagraph의 텍스트 업데이트
- 20. RegEx에서 Apache POI를 사용하여 대문자 단어를 추출
- 21. Apache POI를 사용하여 Excel의 이미지를 열에 삽입하십시오.
- 22. Apache POI를 사용하여 Excel 시트 삭제
- 23. Apache POI를 사용하여 Java에서 .doc을 .html로 변환
- 24. Apache POI를 사용하여 날짜 형식 설정
- 25. apache poi를 사용하여 Excel의 탭에 색상 적용
- 26. Apache POI를 사용하여 pptx에서 테이블 만들기
- 27. Apache POI를 사용하여 Excel 파일 조작
- 28. Apache poi를 사용하여 ppt를 png로 변환
- 29. Apache POI를 사용하여 WinWord doc에서 텍스트 바꾸기
- 30. Apache POI를 사용하여 Excel 시트 복사
당신이의 배경 속성 검색 모양 또는 페이지 마스터 슬라이드에 정의 된 페이지의 배경? – kiwiwings
개별 슬라이드의 배경 속성을 검색 중입니다. –