2017-02-21 3 views
0

J'utilise la bibliothèque PHP pour télécharger et mettre à jour un fichier HTML et le convertir en documents Google natifla création d'un document sur Google Drive et changer son format papier

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

il crée un document avec le format de papier sur Lettre . Pour mon compte, la valeur par défaut est A4 et je souhaite que le nouveau document soit dans ce format. Est-ce que quelqu'un sait comment définir le format de papier du document téléchargé?

P.S .: J'ai vu this fil, mais peut-être est apparu une méthode?

+0

J'ai parcouru les docs mais malheureusement, je n'ai trouvé aucun exemple associé. Comme indiqué dans le [thread] (http://stackoverflow.com/questions/24183561/uploading-a-document-to-google-drive-and-setting-its-paper-size), il n'est pas encore pris en charge. Cependant, vous pouvez déposer une [demande de fonctionnalité] (https://productforums.google.com/forum/#!topic/drive/TESSj1GH1Xw) pour cela. – abielita

Répondre

0

Google Disque contient des fichiers dans ce qu'on appelle un file resource il s'agit essentiellement d'une liste d'informations sur le fichier. Certains de ces champs peuvent être mis à jour, d'autres ne le peuvent pas. Les champs qui sont écrits sur l'état que sur la page j'ai lié ci-dessus.

Aucune information sur le format de papier. C'est probablement parce que le lecteur ne se soucie pas de la taille du papier qui est définie par la machine locale au moment de l'impression du fichier.

Réponse: Non, vous cant définir la taille de papier pour un fichier sur Google Drive

0

Vous pouvez le faire avec Apps Script. C'est un peu hacky, mais ça devrait marcher. Vous devrez: -

  1. créer une Apps fonction de script qui utilise le service de document (voir https://developers.google.com/apps-script/reference/document et https://developers.google.com/apps-script/reference/document/body#setPageHeight%28Number%29 pour manipuler les paramètres de la page pour un ID de document donné
  2. Publier ce script https://developers.google.com/apps-script/guides/content afin qu'il puisse être appelé comme point final.
  3. Après avoir importé votre fichier que vous faites actuellement, G Drive retourner l'ID du fichier nouvellement créé dans $file. Utilisez cet ID ($file->getId()) pour appeler le point final de l'étape 2.
+0

Merci, je vais essayer –