我使用PHP库上传和更新HTML文件并将其转换为原生Google文档
include_once ROOT.'/google-api-php-client/vendor/autoload.php';
$client = new Google_Client();
$credentialsFile = ROOT.'/google-api-php-client/service_account.json';
if (!file_exists($credentialsFile)) {
throw new RuntimeException('Service account credentials Not Found!');
}
$client->setAuthConfig($credentialsFile);
$client->setScopes(Google_Service_Drive::DRIVE);
$service = new Google_Service_Drive($client);
/**
* Проверка существования папки для документов
*/
$optParams = array(
'q' => "name='Документы'"
);
$results = $service->files->listFiles($optParams);
if (count($results->getFiles()) == 0) {
exit('Нет папки для документов');
} else {
foreach ($results->getFiles() as $file) {
$papka_doc = $file->getId();
}
}
/**
* Обращение к шаблону
*/
$optParams = array(
'q' => "name='{$tpl_name}' "
);
$results = $service->files->listFiles($optParams);
if (count($results->getFiles()) == 0) {
exit('Нет шаблона');
} else {
foreach ($results->getFiles() as $file) {
$sh_id = $file->getId();
}
}
/**
* Получение контента из шаблона
*/
$content = $service->files->export($sh_id, 'text/html', array(
'alt' => 'media' ));
$dd =$content->getBody();
$chto = array_keys ($replace);
$chto= $this->translit($chto);
$nachto =array_values ($replace);
$nachto= $this->translit($nachto);
$dd = str_replace($chto, $nachto, $dd);
/**
* Создание основы для документа
*/
$fileId = $sh_id;
$doc_name = $tpl_name.'_'.date('dmY-Hi');
$fileMetadata = new Google_Service_Drive_DriveFile(array(
'name' => $doc_name,
'parents' => array($papka_doc)));
$file = $service->files->copy($fileId, $fileMetadata, array(
'fields' => 'id'));
$new_file_id = $file->id;
/**
* Вставка контента в новый документ
*/
$fileMetadata = array(
'data' => $dd);
$filenew = new Google_Service_Drive_DriveFile();
$file = $service->files->update($new_file_id, $filenew, $fileMetadata);
它会创建一个纸张大小设置为Letter的文档。对于我的帐户,默认值为A4,我希望新创建的文档采用此格式。 有没有人知道如何设置上传文件的纸张尺寸?
P.S。:我看到了this线程,但可能已经出现了一种方法?
答案 0 :(得分:0)
Google云端硬盘包含所谓的file resource文件,它基本上是有关该文件的信息的元数据列表。其中一些字段可以更新一些不能。在我上面链接的页面上写下关于状态的字段。
没有关于纸张尺寸的信息。这可能是因为驱动器并不关心纸张尺寸,这是本地机器在打印文件时设置的。
答案:不,您无法为Google云端硬盘上的文件设置纸张尺寸
答案 1 :(得分:0)
您可以使用Apps脚本执行此操作。这有点hacky,但应该工作。你需要: -
$file
。使用此ID($file->getId()
)从步骤2调用端点。