2017-02-21 19 views
0

私はそれが文字に設定した用紙サイズで文書を作成し、HTMLファイルをアップロードし、更新するPHPライブラリを使用し、ネイティブの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); 

に変換。私のアカウントでは、デフォルトはA4で、新しく作成されたドキュメントをこのフォーマットにしたい。 誰かがアップロードされたドキュメントの用紙サイズを設定する方法を知っていますか?

P .:私はthisスレッドを見ましたが、方法が出現している可能性がありますか?

+0

私はドキュメントを検索しましたが、残念ながら関連する例は見つかりませんでした。 [スレッド](http://stackoverflow.com/questions/24183561/uploading-a-document-to-google-drive-and-setting-its-paper-size)に記載されているとおり、まだサポートされていません。ただし、このために[機能要求](https://productforums.google.com/forum/#!topic/drive/TESSj1GH1Xw)を提出することができます。 – abielita

答えて

0

Googleドライブには、file resourceという名前のファイルが含まれています。基本的に、ファイルに関する情報のメタデータのリストです。これらのフィールドの一部は更新できないものもあります。私が上にリンクしているページでそれについて述べるフィールドがあります。

用紙サイズに関する情報はありません。これはおそらく、ドライブは、ローカルマシンがファイルを印刷するときに設定するものである用紙サイズには気を付けないからです。

回答:いいえ、あなたはあなたがAppsスクリプトでそれを行うことができ、Googleのドライブ

0

上のファイルの設定用紙サイズを傾けます。ちょっとハッキリですが、うまくいくはずです。あなたはする必要があります: -

  1. するドキュメントサービスを使用するAppsスクリプト機能を作成する(与えられた文書ID
  2. 用のページパラメータを操作するためhttps://developers.google.com/apps-script/reference/documenthttps://developers.google.com/apps-script/reference/document/body#setPageHeight%28Number%29を見ることができるように、そのスクリプトhttps://developers.google.com/apps-script/guides/contentを公開エンドポイントと呼ばれる。あなたが現在行っているとして、あなたのファイルをインポートした後
  3. 、Gドライブは$fileに新しく作成されたファイルのIDを返します。ステップからエンドポイントを呼び出すために、このID($file->getId())を使用します。2.
+0

ありがとうございます、私は試してみます –

関連する問題