2017-12-27 9 views
0

에 쓰기 HD 이미지 575 x 431로 조정하기 후,PDFBox : 나는 이미지를 변환하려고 PDF

// Read image width and height 
    float imageWidth = bitmap.getWidth(); 
    float imageHeight = bitmap.getHeight(); 

    // Read page width and height ignoring the margins 
    float pageWidth = PDRectangle.A4.getWidth() - (margin_left_right * 2); 
    float pageHeight = PDRectangle.A4.getHeight() - (margin_top_bottom * 2); 

    Log.d("Image Resize", String.valueOf(imageWidth) + " x " + String.valueOf(imageHeight)); 
    Log.d("Image Resize", String.valueOf(pageWidth) + " x " + String.valueOf(pageHeight)); 

    # Image: 4160.0 x 3120.0 
    # Page: 575.27563 x 821.8898 

    Log.d("Image Resize", String.valueOf(requiredRatio)); 
    Log.d("Image Resize", String.valueOf(newImageWidth) + " x " + String.valueOf(newImageHeight)); 

    # Required ratio: 0.13828741 
    # After scaling: 575 x 431 

문제가 크기 4160 x 3120와 A4의 PDF로 이미지를 CAMERAA이다 사용하여 촬영, 매우 픽셀 화 보인다.

PDF는 일반적으로이 문제를 어떻게 해결합니까? contentStream.drawImage()을 사용하여 글을 쓸 때 600 dpi4160 x 3120라고 말할 수있는 방법이 있습니까?


question 또한 이미지의 높이와 폭에 동일한 크기의 페이지 크기를 조정없이 작성하는 경우, 영업 이익은 단지 그 손실없이 축소되는 방법, 15 %에서 이미지를 볼 수 있다는 사실을 지원합니다 품질의?

답변

0

contentStream.drawImage(PDImageXObject, float x, float y) 
contentStream.drawImage(PDImageXObject, float x, float y, float height, float width) 

contentStream.drawImage() 노골적인 폭 및 높이를 지정하여,이 달성 될 수 있도록 할 과부하 drawImage() 방법이있다. 예를 들어 이미지를 4 배 더 작게 유지하면서도 동일한 해상도를 유지하려면

scaleDownRatio = 0.25; 
pageSize = PDRectangle.A4; 

# this will draw image at bottom left corner 
PDImageXObject pageImageXObject = LosslessFactory.createFromImage(document, bitmap); 
contentStream.drawImage(pageImageXObject, 0, 0, bitmap.getWidth() * ratio, bitmap.getHeight() * ratio) 

# to center it you can use something like 
contentStream.drawImage(pageImageXObject, (pageSize.getWidth() - bitmap.getWidth() * ratio)/2, (pageSize.getHeight() - bitmap.getHeight() * ratio)/2, bitmap.getWidth() * ratio, bitmap.getHeight() * ratio) 
+0

귀하의 질문에 대한 답변은 귀하가 링크 한 다른 사람의 답변과 동일합니다. WTF ?? –

+0

DPI를 직접 지정할 수있는 방법이 없지만 DPI를 입력하면 다운 샘플링없이 이미지가 축소되어 인쇄됩니다. –

+0

@TilmanHausherr btw ** 작성한 후에이 답변을 게시 한 사람은 ** me **입니다. 여기 그 사람에게 도움이 될만한 .. –

관련 문제