API گوگل داکز به شما امکان میدهد متن را در یک سند وارد یا حذف کنید. جابجایی متن شامل هر دو عملیات است که قبل از آن باید محتوای سند را get .
شما میتوانید متن را در هر یک از بخشهای تب در یک سند (بدنه، سربرگ، پاورقی یا پاورقی) وارد یا حذف کنید. برای اطلاعات بیشتر، به بخش «کار با تبها» مراجعه کنید.
متن را وارد کنید
برای درج متن در یک سند، از متد documents.batchUpdate استفاده کنید و یک InsertTextRequest به همراه متن و مکان آن را به عنوان payload وارد کنید.
نمونه کد زیر نشان میدهد که چگونه میتوانید مجموعهای از رشتههای متنی را در مکانهای مشخص شده در فهرست در بدنه یک سند وارد کنید. این مثال از سه فاصله هدف (25، 50 و 75) استفاده میکند و یک رشته ده کاراکتری را در هر مکان وارد میکند.
جاوا
List<Request> requests = new ArrayList<>(); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text1) .setLocation(new Location().setIndex(25).setTabId(<var>TAB_ID</var>)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text2) .setLocation(new Location().setIndex(50).setTabId(<var>TAB_ID</var>)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text3) .setLocation(new Location().setIndex(75).setTabId(<var>TAB_ID</var>)))); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(<var>DOCUMENT_ID</var>, body).execute();
پی اچ پی
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text1, 'location' => array( 'index' => 25, 'tabId' => <var>TAB_ID</var>, ), ), )); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text2, 'location' => array( 'index' => 50, 'tabId' => <var>TAB_ID</var>, ), ), )); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text3, 'location' => array( 'index' => 75, 'tabId' => <var>TAB_ID</var>, ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($<var>DOCUMENT_ID</var>, $batchUpdateRequest);
پایتون
requests = [ { 'insertText': { 'location': { 'index': 25, 'tabId': <var>TAB_ID</var> }, 'text': text1 } }, { 'insertText': { 'location': { 'index': 50, 'tabId': <var>TAB_ID</var> }, 'text': text2 } }, { 'insertText': { 'location': { 'index': 75, 'tabId': <var>TAB_ID</var> }, 'text': text3 } }, ] result = service.documents().batchUpdate( documentId=<var>DOCUMENT_ID</var>, body={'requests': requests}).execute()
هر درج، تمام اندیسهای با شماره بالاتر را به اندازه متن درج شده افزایش میدهد. این مثال نتیجه این تغییرات اندیس را از قبل محاسبه میکند تا درجهای بعدی در آفست جدید و اصلاحشده انجام شوند. بنابراین برای درج در آفستهای هدف اصلی ۲۵، ۵۰ و ۷۵، اندیسهای درج واقعی عبارتند از:
- اولین درج، 10 کاراکتر را با آفست 25 اضافه میکند.
- درج دوم، 10 کاراکتر را در فاصله 50+10=60 اضافه میکند.
- سومین درج، 10 کاراکتر را در فاصله 75+10+10=95 اضافه میکند.
حذف متن
برای حذف متن از یک سند، ابتدا یک Range ایجاد کنید که محدوده متن مورد نظر برای حذف را تعریف کند. سپس از متد documents.batchUpdate استفاده کنید و یک DeleteContentRangeRequest در آن قرار دهید.
نمونه کد زیر نشان میدهد که چگونه میتوانید متن بین اندیس ۱۰ و اندیس ۲۴ را در بدنه یک سند حذف کنید.
جاوا
List<Request> requests = new ArrayList<>(); requests.add(new Request().setDeleteContentRange( new DeleteContentRangeRequest() .setRange(new Range() .setStartIndex(10) .setEndIndex(24) .setTabId(<var>TAB_ID</var>)) )); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(<var>DOCUMENT_ID</var>, body).execute();
پی اچ پی
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'deleteContentRange' => array( 'range' => array( 'startIndex' => 10, 'endIndex' => 24, 'tabId' => <var>TAB_ID</var> ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate(<var>DOCUMENT_ID</var>, $batchUpdateRequest);
پایتون
requests = [ { 'deleteContentRange': { 'range': { 'startIndex': 10, 'endIndex': 24, 'tabId': <var>TAB_ID</var> } } }, ] result = service.documents().batchUpdate( documentId=<var>DOCUMENT_ID</var>, body={'requests': requests}).execute()
همانند درج متن، حذف متن، اندیسهای تمام متنهای بعدی در آن بخش را تغییر میدهد. باز هم، نوشتن به عقب میتواند مدیریت اندیسها را برای شما سادهتر کند.
متن را جابجا کنید
برای جابجایی متن، آن را در یک مکان حذف کرده و سپس در جای دیگری وارد میکنید. حذف محتوا، یک کپی از آن را به شما نمیدهد (مفهوم معادلی برای کلیپبورد وجود ندارد)، بنابراین ابتدا باید محتوای محدوده را استخراج کنید تا بتوانید در درخواست درج متن خود از آن استفاده کنید.