You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Google Apps Script保存Google Slide为PDF并保留原幻灯片格式?

解决Google幻灯片转PDF时保留原格式的问题

在使用Google Apps Script导出Google幻灯片为PDF时,若直接调用默认导出方法,常会出现4:3格式幻灯片被强制转为16:9、导致内容错乱的情况。要保留原幻灯片的比例,需在导出URL中指定对应尺寸参数,具体实现如下:

核心思路

先获取幻灯片的原始页面设置,再在PDF导出请求中添加匹配的尺寸参数,覆盖默认导出格式。

代码实现

function saveSlideAsPdfWithOriginalSize() {
  // 获取当前活跃的幻灯片文件
  const presentation = SlidesApp.getActivePresentation();
  const pageSetup = presentation.getPageSetup();
  const originalPageSize = pageSetup.getPageSize();
  
  // 映射原幻灯片尺寸到PDF导出的参数值
  let exportSizeParam;
  switch(originalPageSize) {
    case SlidesApp.PageSize.STANDARD_4_3:
      exportSizeParam = 'w1024-h768';
      break;
    case SlidesApp.PageSize.WIDE_16_9:
      exportSizeParam = 'w1920-h1080';
      break;
    case SlidesApp.PageSize.WIDE_16_10:
      exportSizeParam = 'w1280-h800';
      break;
    case SlidesApp.PageSize.A4:
      exportSizeParam = 'w827-h1169';
      break;
    case SlidesApp.PageSize.LETTER:
      exportSizeParam = 'w850-h1100';
      break;
    default:
      exportSizeParam = 'w1024-h768';
  }
  
  // 构造带尺寸参数的PDF导出URL
  const fileId = presentation.getId();
  const exportUrl = `https://docs.google.com/presentation/d/${fileId}/export/pdf?${exportSizeParam}`;
  
  // 发起授权请求获取PDF内容
  const authToken = ScriptApp.getOAuthToken();
  const response = UrlFetchApp.fetch(exportUrl, {
    headers: { 'Authorization': `Bearer ${authToken}` }
  });
  
  // 将PDF保存到Google Drive
  const pdfBlob = response.getBlob().setName(`${presentation.getName()}_原格式.pdf`);
  DriveApp.createFile(pdfBlob);
}

关键说明

  1. 获取原始尺寸:通过getPageSetup()和getPageSize()获取幻灯片的原始比例类型,比如STANDARD_4_3对应4:3格式。
  2. 匹配导出参数:不同幻灯片尺寸对应固定的宽高参数(如4:3对应w1024-h768),确保导出PDF尺寸与原幻灯片一致。
  3. 授权请求:使用ScriptApp.getOAuthToken()获取授权令牌,确保有权限访问并导出幻灯片内容。

内容的提问来源于stack exchange,提问作者seinecle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:25:03