2017-02-21 3 views
0

ich die PHP-Bibliothek verwenden, um eine HTML-Datei zu laden und zu aktualisieren und es zu nativer Dokumente Google konvertierenSchaffung ein Dokument in Google Drive und seine Papiergröße ändern

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); 

es ein Dokument mit Papierformat auf Letter erstellt . Für meinen Account ist der Standard A4 und ich möchte, dass das neu erstellte Dokument in diesem Format ist. Kennt jemand eine Möglichkeit, das Papierformat des hochgeladenen Dokuments festzulegen?

S.S .: Ich sah this Thread, aber möglicherweise eine Methode erschienen?

+0

Ich habe die Dokumente durchsucht, aber leider habe ich kein verwandtes Beispiel gefunden. Wie im [thread] (http://stackoverflow.com/questions/24183561/uploading-a-document-to-google-drive-and-setting-its-paper-size) angegeben, wird es noch nicht unterstützt. Sie können dafür jedoch eine [Feature-Anfrage] (https://productforums.google.com/forum/#!topic/drive/TESSj1GH1Xw) einreichen. – abielita

Antwort

0

Google Drive enthält Dateien in einem so genannten file resource es ist im Grunde eine Metadaten-Liste von Informationen über die Datei. Einige dieser Felder können aktualisiert werden, einige nicht. Die Felder, über die geschrieben wird, geben das auf der Seite an, die ich oben verlinkt habe.

Es liegen keine Informationen über das Papierformat vor. Das liegt wahrscheinlich daran, dass dem Laufwerk die Papiergröße egal ist, die der lokale Computer zum Zeitpunkt des Drucks der Datei festlegt.

Antwort: Nein, Sie kippt das Papierformat für eine Datei auf Google Drive

0

Sie können es mit Apps Script tun. Es ist ein bisschen hacky, aber sollte funktionieren. Sie werden müssen: -

  1. eine Apps Script-Funktion erstellen, die den Document-Dienst verwendet (siehe https://developers.google.com/apps-script/reference/document und https://developers.google.com/apps-script/reference/document/body#setPageHeight%28Number%29 die Seite Parameter für ein bestimmtes Dokument ID
  2. das Skript veröffentlichen https://developers.google.com/apps-script/guides/content so manipulieren, dass es sein kann, genannt als Endpunkt.
  3. Nachdem Sie Ihre Datei importieren, wie Sie derzeit tun, kehrt G-Laufwerk die ID der neu erstellten Datei in $file. diese ID verwenden ($file->getId()) aus Schritt den Endpunkt zu nennen 2.
+0

Danke, ich werde es versuchen –

Verwandte Themen