Pārlūkot izejas kodu

Report Sign Online: Compress Report Export Image

MaiXinRong 9 gadi atpakaļ
vecāks
revīzija
f44a6a1793
2 mainītis faili ar 16 papildinājumiem un 8 dzēšanām
  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;