19,471
社区成员




BOOL CPdfElement::GetSaveDatBkImage(ByteMem &ElmDat)
{
CHAR szBuffer[4096];
int nImgW, nImgH;
int nViewX, nViewY, nViewW, nViewH; //坐标系, 左下为原点
ByteMem JpgDat;
double dK;
BOOL bRetVal;
m_pImage->GetSize(nImgW, nImgH);
nViewW = nImgW;
nViewH = nImgH;
bRetVal = NGdi::CalcuImgPlaceSize(PDF_PageW, PDF_PageH, nViewW, nViewH, dK);
if(bRetVal == FALSE)
{
nViewW = PDF_PageW;
nViewH = PDF_PageH;
}
nViewX = 0;
nViewY = PDF_PageH - nViewH;
sprintf(szBuffer,
STR_LINE("q")
STR_LINE("%d 0 0 %d %d %d cm") //nViewW, nViewH, nViewX, nViewY
STR_LINE("BI")
STR_LINE("/W %d") //nImgW
STR_LINE("/H %d") //nImgH
STR_LINE("/CS /RGB")
STR_LINE("/BPC 8")
STR_LINE("/I true")
STR_LINE("/F /DCT")
STR_LINE("ID"),
nViewW, nViewH, nViewX, nViewY, nImgW, nImgH);
ElmDat.append(szBuffer);
m_pImage->GetJpgDat(JpgDat, m_pDoc->m_nJpgQuality);
ElmDat.append(JpgDat);
sprintf(szBuffer,
STR_LINE("")
STR_LINE("EI")
STR_LINE("Q")
);
ElmDat.append(szBuffer);
return TRUE;
}
压缩
CPdfPage::SavetoFile(CPdfDoc *pDoc, HANDLE hFile)
{
...
bCompress = pDoc->IsCompress();
if(bCompress)
{
strcpy(szFilter, "/FlateDecode");
pDoc->CompresDat(ElmsDat, CompresDat);
pFinDat = &CompresDat;
}
else
{
strcpy(szFilter, " [ ]");
pFinDat = &ElmsDat;
}
...