Browse Source

Report Sign Online: Compress Report Export Image

MaiXinRong 8 years ago
parent
commit
f44a6a1793
2 changed files with 16 additions and 8 deletions
  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;