자바 워드 문서 변환 pdf 구현 및 워 터 마크 추가 방법 상세 설명

5072 단어 자바wordpdf
본 고 는 자바 가 워드 문서 의 pdf 전환 을 실현 하고 워 터 마크 를 추가 하 는 방법 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
얼마 전에 프로젝트 는 워드 문 서 를 자동 으로 생 성 해 야 했 습 니 다.워드 프 리 마 커 로 워드 문 서 를 생 성 한 후에 생 성 된 문 서 를 브 라 우 저 에서 탐색 하고 생각 하 며 워드 문 서 를 pdf 로 바 꾸 면 됩 니 다.그래서 연 구 했 습 니 다.
워드 문 서 를 PDF 로 전환 하 는 것 은 프로젝트 에서 흔히 볼 수 있 는 수요 중 하나 이다.현재 주류 의 방법 은 두 가지 로 나 눌 수 있다.하 나 는 각종 Office 응용 프로그램 을 이용 하여 전환 하 는 것 이다.예 를 들 어 Microsoft Office,WPS 와 LiberOffice,다른 하 나 는 각종 언어 로 제공 하 는 Office 문서 에 대한 읽 기 인터페이스(예 를 들 어 Apache POI,jacob,docx4j,openoffice)이다.이런 것들 은 비용 을 받 거나플러그 인 을 설치 하거나 전환 후 스타일 이 바 뀌 거나 코드 가 바 뀌 는 등.
Aspose.Words for Java 를 사용 하면 복잡 한 WORD PDF HTML 의 다양한 데이터 형식 을 내 보 낼 수 있 습 니 다.
공식 다운로드 주소:http://www.aspose.com/java/word-component.aspx
제 가 사용 하 는 버 전 은 aspose-words-14.9.0-jdk 16 입 니 다.필요 한 jar 가방 두 개(필요 한 것jar 패키지 다운로드).
쓸데없는 말 은 그만 하고 코드 를 바로 입력 하 세 요.

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.slf4j.Logger;
import com.aspose.words.Document;
import com.aspose.words.SaveFormat;
/**
 * 
* @ClassName: Word2PdfUtilt
* @Description: PDF     
* @author mzl
* @date 2018 7 30    5:26:44
*
 */
public class Word2PdfUtilt {
    protected static Logger log = Log.get();
    public static void main(String[] args) {
    doc2pdf("D:\\Workspaces\\    _20180731094521.doc","D:\\Workspaces\\test.pdf");
  }
  public static void doc2pdf(String inPath, String outPath) {
      FileOutputStream os =null;
    try {
      File file = new File(outPath); //       pdf  
      os = new FileOutputStream(file);
      Document doc = new Document(inPath); // Address       word  
      doc.save(os, SaveFormat.PDF);
    } catch (Exception e) {
      e.printStackTrace();
    }finally{
        if(os!=null){
            try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    }
  }
}

PDF 형식 으로 전환 하면 그림 등 스타일 이 흐 트 러 지지 않 습 니 다.

이상 은 PDF 를 생산 하 는 절차 입 니 다.그 다음 에 워 터 마크 를 추가 합 니 다.

/**
* 
* @Title: insertWatermarkText
* @Description: PDF    
* @author mzl
* @param doc
* @param watermarkText
* @throws Exception
* @throws
*/
private static void insertWatermarkText(Document doc, String watermarkText) throws Exception
{
    Shape watermark = new Shape(doc, ShapeType.TEXT_PLAIN_TEXT);
    //    
    watermark.getTextPath().setText(watermarkText);
    //    
    watermark.getTextPath().setFontFamily("  ");
    //    
    watermark.setWidth(500);
    //    
    watermark.setHeight(100);
    //    
    watermark.setRotation(-40);
    //    
    watermark.getFill().setColor(Color.lightGray); 
    watermark.setStrokeColor(Color.lightGray); 
    watermark.setRelativeHorizontalPosition(RelativeHorizontalPosition.PAGE);
    watermark.setRelativeVerticalPosition(RelativeVerticalPosition.PAGE);
    watermark.setWrapType(WrapType.NONE);
    watermark.setVerticalAlignment(VerticalAlignment.CENTER);
    watermark.setHorizontalAlignment(HorizontalAlignment.CENTER);
    Paragraph watermarkPara = new Paragraph(doc);
    watermarkPara.appendChild(watermark);
    for (Section sect : doc.getSections())
    {
      insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_PRIMARY);
      insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_FIRST);
      insertWatermarkIntoHeader(watermarkPara, sect, HeaderFooterType.HEADER_EVEN);
    }
    System.out.println("Watermark Set");
}
private static void insertWatermarkIntoHeader(Paragraph watermarkPara, Section sect, int headerType) throws Exception
{
    HeaderFooter header = sect.getHeadersFooters().getByHeaderFooterType(headerType);
    if (header == null)
    {
      header = new HeaderFooter(sect.getDocument(), headerType);
      sect.getHeadersFooters().add(header);
    }
    header.appendChild(watermarkPara.deepClone(true));
}

효과 도 는 다음 과 같 습 니 다.제 가 추가 한 워 터 마크 는 제 블 로그 닉네임 입 니 다.선택 은 MZL 입 니 다.
 
자바 알고리즘 과 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기