Распечатать диаграмму из Google Sheets горизонтально - PullRequest
1 голос
/ 01 мая 2019

Мне нужно найти способы печати диаграммы в формате pdf / image / sheet по горизонтали .

Я печатаю автоматически с кодом.

Теперь я печатаю PDF-файл, созданный на вкладке электронной таблицы, но он всегда печатается вертикально, несмотря на настройки параметров.

Он сохраняет красивые горизонтальные PDF-файлы на диске, но затем печатает их по вертикали.

Когда я печатаю статистику, мне нужно, чтобы она была горизонтально.

Вот мой код с параметрами:

  var requestData = {
    "oAuthServiceName": "spreadsheets",
    "oAuthUseToken": "always",
  };  
  
  //spreadsheet id
  var ssID = ss.getId()
  
  //sheet id
  var sID = ss.getSheetByName("Print").getSheetId();
   
  //creating pdf  
  var pdf = UrlFetchApp.fetch("https://docs.google.com/spreadsheets/d/"+ssID+"/export?gid="+sID+"&portrait=false&size=letter&fitw=true&format=pdf",requestData).getBlob();  
  
  //folder to created pdf in
  var folder = DriveApp.getFolderById("1RseEezmGT2gSBS9rgdV0E2ggRD5O6dyu")
 
  //creating pdf in this folder with given name
  var file = folder.createFile(pdf).setName("Chart")
  
  var docID = file.getId()

  var printerID = "02f4280c-9e83-da7d-d5ff-ca0f25ca03e3"
  var docName = "Chart"

  //starts printing
  printGoogleDocument(docID, printerID, docName)

И

function printGoogleDocument(docID, printerID, docName) {
  
  var ticket = {
    version: "1.0",
    print: {
      color: {
        type: "STANDARD_COLOR",
        vendor_id: "Color"
      },
      duplex: {
        type: "NO_DUPLEX"
      }
    }
  };

  var payload = {
    "printerid" : printerID,
    "title"     : docName,
    "content"   : DriveApp.getFileById(docID).getBlob(),  
    "contentType": "application/pdf",
    "ticket"    : JSON.stringify(ticket)
  };

  var response = UrlFetchApp.fetch('https://www.google.com/cloudprint/submit', {
    method: "POST",
    payload: payload,
    headers: {
      Authorization: 'Bearer ' + getCloudPrintService().getAccessToken()
    },
    "muteHttpExceptions": true
  });

Поэтому я использую здесь опцию portrait=false для печати в виде пейзажа. Не работает

Ценю любые решения для горизонтальной печати. ​​

1 Ответ

0 голосов
/ 02 мая 2019

Попробуйте включить в билет page_orientation:

  var ticket = {
    version: "1.0",
    print: {
      color: {
        type: "STANDARD_COLOR",
        vendor_id: "Color"
      },
      duplex: {
        type: "NO_DUPLEX"
      },
      page_orientation: { //Added
        type:1//or type:"LANDSCAPE"
      }
    }
  };

Рекомендации:

...