sharpPDF라는 (약간 오래된) .net 라이브러리에 문제가 있습니다. Google은 gis 웹 응용 프로그램에서 몇 개의 이미지를 생성하므로이 라이브러리 내의 이미지를 참조해야합니다. 유일한 문제는 라이브러리가 사용하고 있거나 사용하지 않는 압축 인 것 같습니다. 이미지는 PNG32입니다.sharpPDF - 이미지 품질 도움말 - pdf 사양
결과가 iTextSharp를 통해 생성 된 pdf와 비교할 때 결과가 상당히 많이 압축됩니다 (불행히도 우리에게는 아무런 이유가 없지만 이유는 묻지 않음).
것은 나는 소스 코드에서, 다음과 같은 무언가가 있다는 나타났습니다 :
// PDF의 이미지는 런타임이
> 60517 0 obj << /Type /XObject /Subtype
> /Image /Name /I60517 /Filter
> /DCTDecode /Width 830 /Height 1300
> /BitsPerComponent 8 /ColorSpace
> /DeviceRGB /Length 77076
> >> stream
> -here goes some bytes- endstream endobj
과 같은
foreach (pdfImageReference image in _images.Values)
{
_trailer.addObject(_bufferLength.ToString());
_bufferLength += writeToBuffer(_myBuffer, image.getText());
_bufferLength += writeToBuffer(_myBuffer, "stream" + Convert.ToChar(13) + Convert.ToChar(10));
_bufferLength += writeToBuffer(_myBuffer, image.content);
_bufferLength += writeToBuffer(_myBuffer, Convert.ToChar(13).ToString());
_bufferLength += writeToBuffer(_myBuffer, Convert.ToChar(10).ToString());
_bufferLength += writeToBuffer(_myBuffer, "endstream" + Convert.ToChar(13) + Convert.ToChar(10));
_bufferLength += writeToBuffer(_myBuffer, "endobj" + Convert.ToChar(13) + Convert.ToChar(10));
currentStep++;
}
일부 PDF 사양 지식이있는 사람이라면 누구나 압축에 대한 가능한 문제를 파악하는 데 도움이 될 수 있습니까?
FlateDecode를 사용했으며 pdf에서 다음과 같이 말합니다. 이미지에 대한 데이터가 충분하지 않습니다. 어떤 아이디어? 고마워요. – belzebu
image.content를 변경하지 않고 사전 설정을 변경 한 것처럼 들립니다. 이미지 데이터를 디코딩하고 다시 압축해야합니다. –
어떻게 그 스트림 객체를 생성합니까? 데이터의 출처는 어디입니까? 압축 메커니즘을 해당 스트림/이미지 사전이 만들어지는 지점으로 설정해야 할 가능성이 큽니다. – plinth