2017-03-22 5 views
0

ExcelシートをPDFにエクスポートしようとしていますが、シートがページの幅内に収まるようにしたいと思います。いくつかの研究を行う際に、私がFitToPagesWideを使用する必要があると思われる、しかし、私はDelphiの例を見つけることができないんだ..ここに私のコードは次のとおりです。Excelオートメーション「FitToPagesWide」はオートメーションオブジェクトでサポートされていません

procedure TForm1.ExcelToPDF(const AFilename: string); 
Const 
    XlTypePDF = 0; 
    xlQualityStandard = 0; 
    IncludeDocProperties = true; 
    IgnorePrintAreas = false; 
    LandscapeMode = 2; 
var 
    P: OleVariant; 
begin 
    P:= CreateOleObject('Excel.Application'); 
    try 
    P.WorkBooks.Open(AFilename, 3); 
    p.ActiveSheet.Pagesetup.Orientation := LandscapeMode; orientation 
    p.ActiveSheet.PageSetup.FitToPagesWide := 1; // <-- not supported by automation object 
    p.ActiveWorkbook.exportAsFixedFormat(xlTypePDF, 
             AFilename, 
             xlQualityStandard, 
             IncludeDocProperties, 
             IgnorePrintAreas); 
    finally 
    p.Quit; 
    end; 
+0

"true"を試しましたか? –

+0

':'を取り除くと、 'FirtToPagesWide = 1'となるはずです@ – BruceWayne

+1

@BruceWayne:それはDelphiに' FitToPagesWide'プロパティ値を読み込ませ、それを1と比較する(ブール式にして、この文脈では合法ではない)。 OPがしようとしているものである 'FitToPagesWide'プロパティには1を割り当てません。 –

答えて

1

FitToPagesWideが働く設定する前に、ズームとFitToPagesTallプロパティを設定すると思われます。

p.ActiveSheet.PageSetup.Zoom := false; 
P.Activesheet.Pagesetup.FitToPagesTall := 1; 
p.ActiveSheet.PageSetup.FitToPagesWide := 1; 
関連する問題