소스 검색

Report Sign Online: Compress Report Export Image

MaiXinRong 9 년 전
부모
커밋
f44a6a1793
2개의 변경된 파일16개의 추가작업 그리고 8개의 파일을 삭제
  1. 2 1
      DataModules/PHPWebDm.pas
  2. 14 7
      Forms/SignOnlineReportsFrm.pas

+ 2 - 1
DataModules/PHPWebDm.pas

@@ -846,10 +846,11 @@ begin
     for i := Low(AUpFileFields) to High(AUpFileFields) do
     for i := Low(AUpFileFields) to High(AUpFileFields) do
       IdDataStream.AddFile(AUpFileFields[i], AUpFileNames[i], 'text/plain');
       IdDataStream.AddFile(AUpFileFields[i], AUpFileNames[i], 'text/plain');
     IdDataStream.Position := 0;
     IdDataStream.Position := 0;
+
+    J := TCslJson.Create;
     try
     try
       sPostResult := vIdHTTP.Post(MeasureURL + AUrl, IdDataStream);
       sPostResult := vIdHTTP.Post(MeasureURL + AUrl, IdDataStream);
 
 
-      J := TCslJson.Create;
       J.Text := Utf8ToAnsi(sPostResult);
       J.Text := Utf8ToAnsi(sPostResult);
       Result := SameText(J.Value['status'], 'true');
       Result := SameText(J.Value['status'], 'true');
       if not Result then
       if not Result then

+ 14 - 7
Forms/SignOnlineReportsFrm.pas

@@ -8,7 +8,7 @@ uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, sdIDTree, sdDB, ComCtrls, ExtCtrls, VirtualTrees, PrintCom,
   Dialogs, sdIDTree, sdDB, ComCtrls, ExtCtrls, VirtualTrees, PrintCom,
   PrintComXML, MScrollBox, StdCtrls, Buttons, PNGButton, ieview,
   PrintComXML, MScrollBox, StdCtrls, Buttons, PNGButton, ieview,
-  imageenview;
+  imageenview, jpeg;
 
 
 const
 const
   crNext = -25;
   crNext = -25;
@@ -1000,15 +1000,22 @@ procedure TSignOnlineReportsForm.ExportReports(const AFileName: string);
 
 
   procedure ExportReportPage(APage: Integer; const APageFileName: string);
   procedure ExportReportPage(APage: Integer; const APageFileName: string);
   var
   var
-    img: TImage;
+    bmp: TBitmap;
+    img: TJPEGImage;
   begin
   begin
-    img := TImage.Create(nil);
+    bmp := TBitmap.Create;
+    img := TJPEGImage.Create;
     try
     try
-      img.Height := PreviewComXML.ReportSize.Y;
-      img.Width := PreviewComXML.ReportSize.X;
-      PreviewComXML.PrintPreviewCanvas(APage, 0, img.Canvas, False);
-      img.Picture.SaveToFile(APageFileName);
+      bmp.Height := PreviewComXML.ReportSize.Y;
+      bmp.Width := PreviewComXML.ReportSize.X;
+      PreviewComXML.PrintPreviewCanvas(APage, 0, bmp.Canvas, False);
+
+      img.Assign(bmp);
+      img.CompressionQuality := 100;
+      img.Compress;
+      img.SaveToFile(APageFileName);
     finally
     finally
+      bmp.Free;
       img.Free;
       img.Free;
     end;
     end;
   end;
   end;