我正在尝试创建一个新的 4:3 演示文稿,而不是 16:9。
我阅读了这个参考并写了一些 ruby 代码,但它没有用。新演示文稿的高度与我指定的不同。
方法:presentation.create | 幻灯片 API | 谷歌开发者
# foo.rb
require 'google/apis/slides_v1'
Slide = Google::Apis::SlidesV1 # alias
slides_service = Slide::SlidesService.new
# authorize...
new_presentation_object = Slide::Presentation.new(
title: "test",
page_size: Slide::Size.new(
width: Slide::Dimension.new(magnitude: 6_858_000, unit: 'EMU'),
height: Slide::Dimension.new(magnitude: 9_141_000, unit: 'EMU')
)
)
presentation = slide_service.create_presentation(new_presentation_object, fields: "pageSize,presentationId")
presentation.page_size
# => #<Google::Apis::SlidesV1::Size:0x007f99ef1fb630
# @height=#<Google::Apis::SlidesV1::Dimension:0x007f99ef1f8278 @magnitude=5143500, @unit="EMU">,
# @width=#<Google::Apis::SlidesV1::Dimension:0x007f99ef1fa550 @magnitude=9144000, @unit="EMU">>
Run Code Online (Sandbox Code Playgroud)
如何创建新的 4:3 演示文稿?
我发现没有 API 可以更改 PageSize 而是 CreatePresentation,但欢迎任何更改 PageSize 的想法。
在 Google 幻灯片中,可以将幻灯片设置为在演示模式下“跳过”(如此处所述)。
但是,自动页码仍然包括跳过的幻灯片(这意味着在演示模式下,如果4跳过幻灯片,幻灯片编号会直接从 跳转3到5)。
我想使用 Google Apps 脚本生成我自己的幻灯片编号,以便只计算未跳过的幻灯片。但我不知道如何检查幻灯片是否被标记为“跳过”。
这就是我的想法:
function genSlideNumbers() {
var preso = SlidesApp.openById('PRESENTATION_ID');
var slides = preso.getSlides()
var slide_num = 1
for (var i = 0; i < slides.length; i++) {
slide = slides[i]
if ( /* ?? slide is "skipped" ?? */ ) {
slides[i].insertTextBox(slide_num);
slide_num++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以?
编辑:不是这个问题的重复,因为我不是问如何跳过幻灯片;我问是否有任何方法可以判断幻灯片是否被跳过。
google-apps-script google-slides google-slides-api google-apps-script-addon
有没有办法通过其余 API 更改 Google Slides 表格的表格单元格填充属性?
updateTableCellProperties 似乎没有任何单元格填充属性
在谷歌幻灯片中,您可以拥有链接对象,即您可以在幻灯片中查看的图表或工作表中的范围。如果您更改图表或工作表中的范围,则可以单击幻灯片中的更新,您将能够看到更改。
问题是我找不到更改链接对象指向哪个工作表的方法。因此,如果我在幻灯片中有一个表格链接到一张工作表中的某个范围,我该如何更改它以链接到另一张工作表?
我希望能够将链接对象从一张工作表更改为另一张工作表的原因是可以为谷歌幻灯片制作模板和为谷歌工作表制作模板。然后,当您想要创建模板的新实例时,您可以将新的 google 幻灯片实例中的链接对象更改为指向 google sheet 文档的新实例。
我在一家公司工作,我们根据谷歌工作表数据制作了很多谷歌幻灯片报告。
我曾尝试查看谷歌幻灯片中的不同界面,但似乎这是不可能的。
现在,如果有一种方法可以使用谷歌脚本来解决这个问题,那也可以。我知道如何在 javascript 中编写代码,并且以前曾在 google 脚本中编写过一些脚本。如果可以不用编码,那就太棒了,因为为我们业务中的人设置它会容易得多。
我基本上一直在使用此代码将图像加载到 Google Drive,然后使用 Python 将该图像传输到 Google Slides,但由于某种原因它今天停止工作。
我基于我的代码位于此处:http : //wescpy.blogspot.com/2016/11/using-google-slides-api-with-python.html
但是,今天我重新运行它并出现错误:
googleapiclient.errors.HttpError:https://slides.googleapis.com/v1/presentations/PRESENTATION_ID 返回“无效请求[0].createImage:禁止访问提供的图像。”>
我想知道 Google API 中是否有任何变化?
获取“无效请求 [0].createImage:禁止访问提供的图像。” 将图像从谷歌驱动器添加到谷歌幻灯片 下面是我尝试过的代码片段,尽管通过高级共享选项公开图像。服务帐户对我要添加图像的幻灯片具有编辑权限。
import section: add here the required dependencies
# python build-in modules
import json
import time
import io
# external modules
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient.discovery import build
from apiclient.http import MediaFileUpload
# user modules
from via_types import BasePlugin
class GoogleSlidesPlugin(BasePlugin):
"""
this plugin allows to communicate with Google API and Google Spreadsheets
by using the already created credentials
"""
def __init__(self):
BasePlugin.__init__(self)
self.Scopes = ['https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/drive.file', 'https://www.googleapis.com/auth/drive.readonly','https://www.googleapis.com/auth/presentations','https://www.googleapis.com/auth/presentations.readonly']
self.Creds = ServiceAccountCredentials.from_json_keyfile_name(
r'Libraries/credentials/lucky-dahlia-268410-c4c0c57c1908.json', self.Scopes)
self.service = build('slides', 'v1', …Run Code Online (Sandbox Code Playgroud) 我搜索了一个不错的答案,但是我对此一无所获,所以我想我应该发布一个新主题。
我正在尝试使用带有Google Apps脚本的高级幻灯片服务将单个幻灯片从Google幻灯片复制到另一个幻灯片。
function myFunction() {
var originalPresentation = Slides.Presentations.get('1Lqtwb5z8NcU4VVj8OOR11AJyET70tlRRj6QIhxsEZZg');
var slideToCopy = originalPresentation.slides[3];
var newSlides = Slides.Presentations.create({
title: 'New Slidedeck',
slides: [slideToCopy]
})
}
Run Code Online (Sandbox Code Playgroud)
这将创建带有标题的幻灯片组,但不会复制幻灯片。该文档表明您可以传递带有标题的幻灯片阵列,但没有任何复制内容。还需要母版和布局吗?我究竟做错了什么?提前致谢。
Google Slides 的 GUI 提供将 GSlides 演示文稿下载为 Powerpoint (myFile.pptx)。我在 Google Apps Script 文档中找不到等效的东西 - 任何指针?
编辑
感谢评论和答案,我尝试了这个片段:
function testFileOps() {
// Converts the file named 'Synthese' (which happens to be a Google Slide doc) into a pptx
var files = DriveApp.getFilesByName('Synthese');
var rootFolder = DriveApp.getRootFolder();
while (files.hasNext()) {
var file = files.next();
var blobPptx = file.getBlob().getAs('application/vnd.openxmlformats-officedocument.presentationml.presentation');
var result = rootFolder.createFile(blobPptx);
}
}
Run Code Online (Sandbox Code Playgroud)
它返回一个错误:
不支持从 application/vnd.google-apps.presentation 转换为 application/vnd.openxmlformats-officedocument.presentationml.presentation。(第 7 行,文件“代码”)
第二次编辑
根据评论中的另一个建议,我尝试从 Google App Script 进行 http 调用,这会将幻灯片直接转换为 pptx,没有大小限制。它在 G Drive …
我正在考虑使用 Google App Script 创建一个到 Figma 导出器的谷歌幻灯片。一开始我想首先将在谷歌幻灯片中创建的形状路由到 figma。我将如何设置我的文件?而且我不知道如何在 Google 和 Figma 之间设置 Oauth api 通信,或者是否有可能。
我相信我可以从以下几点开始:
https://github.com/figma/plugin-samples/blob/master/react/src/code.ts
https://github.com/gsuitedevs/apps-script-samples/blob/master/slides/style/style.gs#L30
var file=projectid.key()
var=figma rectangle= file()
await figma.loadFontAsync({ family: "Roboto", style: "Regular" })
name;
var figmaShape = {
figma.ui.onmessage = msg => {
if (msg.type === 'create-rectangles') {
const nodes = []
for (let i = 0; i < msg.count; i++) {
const rect = figma.createRectangle()
rect.x = i * 150
rect.fills = [{type: 'SOLID', color: …Run Code Online (Sandbox Code Playgroud) javascript oauth google-apps-script google-slides-api figma-api
有什么方法可以控制 Google 幻灯片演示中的指南(第三条规则)。就我阅读的 Google Apps Script 文档而言,没有控制指南的方法。
我已经尝试过表现得像指南(第三规则)的线条,但这些不是“真正的”指南。用户可以删除这些行,这些行仅限于幻灯片页面区域。
看图了解线条和参考线的区别(三分法则):
要启用指南(第三规则),请转到此处: