Stay organized with collections
Save and categorize content based on your preferences.
TextOutput
A TextOutput object that can be served from a script.
Due to security considerations, scripts cannot directly return text content to a browser.
Instead, the browser is redirected to googleusercontent.com, which will display it without any
further sanitization or manipulation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-02 UTC."],[[["\u003cp\u003eA \u003ccode\u003eTextOutput\u003c/code\u003e object enables scripts to serve text content securely by redirecting the browser to \u003ccode\u003egoogleusercontent.com\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIt offers methods to serve various content types such as JSON, RSS, and XML using the \u003ccode\u003eContentService\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can manipulate the output using methods like \u003ccode\u003eappend\u003c/code\u003e, \u003ccode\u003eclear\u003c/code\u003e, \u003ccode\u003edownloadAsFile\u003c/code\u003e, \u003ccode\u003egetContent\u003c/code\u003e, \u003ccode\u003egetFileName\u003c/code\u003e, \u003ccode\u003egetMimeType\u003c/code\u003e, \u003ccode\u003esetContent\u003c/code\u003e, and \u003ccode\u003esetMimeType\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eTextOutput\u003c/code\u003e enhances security by preventing direct return of text content to the browser from scripts.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003edownloadAsFile\u003c/code\u003e method enables content to be downloaded instead of displayed, offering flexibility in how the output is handled.\u003c/p\u003e\n"]]],["TextOutput objects allow scripts to serve text content, which browsers access via redirection to googleusercontent.com. Key actions include: `append()` to add content, `clear()` to erase content, `downloadAsFile()` to trigger downloads, `getContent()` to retrieve content, `getFileName()` and `getMimeType()` to get metadata. `setContent()` sets the content, and `setMimeType()` specifies the content type. Scripts can use it to create outputs in text, JSON, RSS, and XML formats.\n"],null,["TextOutput\n\nA TextOutput object that can be served from a script.\n\nDue to security considerations, scripts cannot directly return text content to a browser.\nInstead, the browser is redirected to googleusercontent.com, which will display it without any\nfurther sanitization or manipulation.\n\nYou can return text content like this:\n\n```javascript\nfunction doGet() {\n return ContentService.createTextOutput('hello world!');\n}\n```\nThere are also methods to serve JSON, RSS, and XML as TextOutputs; see the corresponding methods on [ContentService](/apps-script/reference/content/content-service). \n\nMethods\n\n| Method | Return type | Brief description |\n|-----------------------------------------------------|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|\n| [append(addedContent)](#append(String)) | [TextOutput](#) | Appends new content to the content that will be served. |\n| [clear()](#clear()) | [TextOutput](#) | Clears the current content. |\n| [downloadAsFile(filename)](#downloadAsFile(String)) | [TextOutput](#) | Tells browsers to download rather than display this content. |\n| [getContent()](#getContent()) | `String` | Gets the content that will be served. |\n| [getFileName()](#getFileName()) | `String` | Returns the file name to download this file as, or null if it should be displayed rather than downloaded. |\n| [getMimeType()](#getMimeType()) | [MimeType](/apps-script/reference/content/mime-type) | Get the mime type this content will be served with. |\n| [setContent(content)](#setContent(String)) | [TextOutput](#) | Sets the content that will be served. |\n| [setMimeType(mimeType)](#setMimeType(MimeType)) | [TextOutput](#) | Sets the mime type for content that will be served. |\n\nDetailed documentation \n\n`append(addedContent)` \nAppends new content to the content that will be served.\n\nParameters\n\n| Name | Type | Description |\n|------------------|----------|-----------------------|\n| `added``Content` | `String` | the content to append |\n\nReturn\n\n\n[TextOutput](#) --- this TextOutput itself, useful for chaining\n\n*** ** * ** ***\n\n`clear()` \nClears the current content.\n\nReturn\n\n\n[TextOutput](#) --- this TextOutput itself, useful for chaining\n\n*** ** * ** ***\n\n`download``As``File(filename)` \nTells browsers to download rather than display this content.\n\nSome browsers will ignore this setting. Setting this to null will clear it back to the\ndefault behavior of displaying rather than downloading.\n\nParameters\n\n| Name | Type | Description |\n|------------|----------|-----------------------------------------|\n| `filename` | `String` | the filename to tell the browser to use |\n\nReturn\n\n\n[TextOutput](#) --- the TextOutput object, useful for chaining\n\nThrows\n\n\n[`Error`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) --- if the filename contains illegal characters\n\n*** ** * ** ***\n\n`get``Content()` \nGets the content that will be served.\n\nReturn\n\n\n`String` --- the content that will be served\n\n*** ** * ** ***\n\n`get``File``Name()` \nReturns the file name to download this file as, or null if it should be displayed rather than\ndownloaded.\n\nReturn\n\n\n`String` --- the file name\n\n*** ** * ** ***\n\n`get``Mime``Type()` \nGet the mime type this content will be served with.\n\nReturn\n\n\n[MimeType](/apps-script/reference/content/mime-type) --- the mime type this will be served with\n\n*** ** * ** ***\n\n`set``Content(content)` \nSets the content that will be served.\n\nParameters\n\n| Name | Type | Description |\n|-----------|----------|----------------------|\n| `content` | `String` | the content to serve |\n\nReturn\n\n\n[TextOutput](#) --- this TextOutput itself, useful for chaining\n\n*** ** * ** ***\n\n`set``Mime``Type(mimeType)` \nSets the mime type for content that will be served. The default is plain text.\n\nParameters\n\n| Name | Type | Description |\n|--------------|------------------------------------------------------|---------------|\n| `mime``Type` | [MimeType](/apps-script/reference/content/mime-type) | the mime type |\n\nReturn\n\n\n[TextOutput](#) --- this TextOutput itself, useful for chaining"]]