lazarus UOS 自定义纸张报Paper "Custom.xxxxxx“ not suported!
自定义纸张打印时报错
修改 lcl/printers.pas 文件中1207行
由if SupportedPapers.IndexOf(AName)<>-1 then
改为if (SupportedPapers.IndexOf(AName)<>-1) or (pos('Custom.' ,AName) > 0) then
改后完整的函数如下:
function TPaperSize.PaperRectOfName(const AName: string): TPaperRect;
var TmpPaperRect : TPaperRect;
Margins : Integer;
begin
if (fCustomPaper.PaperSet) and (AName=fCustomPaper.Item.PaperName) then
begin
result := fCustomPaper.Item.PaperRect;
exit;
end;
FillChar(Result,SizeOf(Result),0);
if (SupportedPapers.IndexOf(AName)<>-1) or (pos('Custom.' ,AName) > 0) then
begin
if fDefaultPapers then
Margins := GetDefaultPaperRect(AName, TmpPaperRect)
else
Margins := fOwnedPrinter.DoGetPaperRect(aName,TmpPaperRect);
if Margins>=0 then
Result := TmpPaperRect
else
raise EPrinter.Create(Format('The paper "%s" has no defined rectangle!',[aName]));
end
else raise EPrinter.Create(Format('Paper "%s" not supported!',[aName]));
end;