diff --git a/.github/workflows/assembly-production.yml b/.github/workflows/assembly-production.yml new file mode 100644 index 0000000..6137af5 --- /dev/null +++ b/.github/workflows/assembly-production.yml @@ -0,0 +1,69 @@ +# This is a basic workflow to help you get started with Actions + +name: tutorials.groupdocs.cloud(assembly)(family)(Production) + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ master ] + paths: + - 'content/assembly/**' + pull_request: + branches: [ master ] + paths: + - 'content/assembly/**' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of assembly that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + - name: Checkout theme repo + uses: actions/checkout@main + with: + repository: groupdocs-cloud/tutorials-theme + token: ${{ secrets.REPO_TOKEN }} + fetch-depth: 0 + path: themes/tutorials-theme + # Step 2 - Sets up the latest version of Hugo + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.135.0' + extended: true + - name: Install Dependicies1 + run: npm install -D --save autoprefixer + - name: Install Dependicies2 + run: npm install -D --save postcss-cli + # Also specifies the theme we want to use + - name: Build + run: hugo --configDir config/assembly --environment production --minify + + - name: Deploy tutorials.groupdocs.cloud(assembly)(family)(Production) to S3 + run: hugo --configDir config/assembly --environment production deploy --target "Production" --maxDeletes 0 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS }} + # Invalidate Cloudfront + - name: invalidate + uses: chetan/invalidate-cloudfront-action@v2 + env: + DISTRIBUTION: ${{ secrets.AWS_DISTRIBUTION_PROD }} + PATHS: /assembly/* + AWS_REGION: 'us-west-2' + AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS }} diff --git a/.github/workflows/assembly-staging.yml b/.github/workflows/assembly-staging.yml new file mode 100644 index 0000000..fe35cfa --- /dev/null +++ b/.github/workflows/assembly-staging.yml @@ -0,0 +1,69 @@ +# This is a basic workflow to help you get started with Actions + +name: qa-tutorials.groupdocs.cloud(assembly)(family)(Stage) + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ staging ] + paths: + - 'content/assembly/**' + pull_request: + branches: [ staging ] + paths: + - 'content/assembly/**' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of assembly that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + - name: Checkout theme repo + uses: actions/checkout@main + with: + repository: groupdocs-cloud/tutorials-theme + token: ${{ secrets.REPO_TOKEN }} + fetch-depth: 0 + path: themes/tutorials-theme + # Step 2 - Sets up the latest version of Hugo + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.135.0' + extended: true + - name: Install Dependicies1 + run: npm install -D --save autoprefixer + - name: Install Dependicies2 + run: npm install -D --save postcss-cli + # Also specifies the theme we want to use + - name: Build + run: hugo --configDir config/assembly --environment staging --minify + + - name: Deploy qa-tutorials.groupdocs.cloud(assembly)(family)(Stage) to S3 + run: hugo --configDir config/assembly --environment staging deploy --target "Stage" --maxDeletes 0 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS }} + # Invalidate Cloudfront + - name: invalidate + uses: chetan/invalidate-cloudfront-action@v2 + env: + DISTRIBUTION: ${{ secrets.AWS_DISTRIBUTION }} + PATHS: /assembly/* + AWS_REGION: 'us-west-2' + AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS }} diff --git a/config/assembly/_default/config.toml b/config/assembly/_default/config.toml new file mode 100644 index 0000000..f5f0e24 --- /dev/null +++ b/config/assembly/_default/config.toml @@ -0,0 +1,150 @@ +baseURL = "/assembly" +title = "GroupDocs Cloud Tutorials" +staticdir = 'content/static' +enableRobotsTXT = true +enableGitInfo = true +disableKinds = ["taxonomy", "taxonomyTerm", "page", "RSS"] + +# Hugo allows theme composition (and inheritance). The precedence is from left to right. +theme = ["tutorials-theme"] + +[params.menu] +zh = "groupdocscloud-zh" +ru = "groupdocscloud-ru" +ar = "groupdocscloud-ar" +cs = "groupdocscloud-cs" +de = "groupdocscloud-de" +el = "groupdocscloud-el" +es = "groupdocscloud-es" +fr = "groupdocscloud-fr" +hi = "groupdocscloud-hi" +hu = "groupdocscloud-hu" +id = "groupdocscloud-id" +it = "groupdocscloud-it" +ja = "groupdocscloud-ja" +ko = "groupdocscloud-ko" +nl = "groupdocscloud-nl" +pl = "groupdocscloud-pl" +pt = "groupdocscloud-pt" +sv = "groupdocscloud-sv" +th = "groupdocscloud-th" +tr = "groupdocscloud-tr" +vi = "groupdocscloud-vi" +zh-hant = "groupdocscloud-zht" + +defaultContentLang = 'en' +[languages] + [languages.en] + contentDir = 'content/assembly/english' + languageName = 'English' + languageCode = "en" + flag = "flag-us" + weight = 10 + +ignoreFiles = ["(?i:readme.md)", '\.spin$'] + +# Image processing configuration. +[imaging] +resampleFilter = "CatmullRom" +quality = 75 +anchor = "smart" + +[services] +[services.googleAnalytics] +# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. +# id = "UA-00000000-0" + +[markup] + [markup.tableOfContents] + endLevel = 2 + ordered = true + startLevel = 2 + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + [markup.highlight] + anchorLineNos = false + codeFences = true + guessSyntax = false + hl_Lines = "" + lineAnchors = "" + lineNoStart = 1 + lineNos = false + lineNumbersInTable = true + noClasses = false + tabWidth = 4 + +# Everything below this are Site Params + +[params] +copyright = "The GroupDocs Cloud Authors" +privacy_policy = "https://policies.google.com/privacy" +topbar_search_active = false +logo_rel_link = "" + +# Containerize Menu +[params.containerize] +menu = "groupdocscloud-en" + +[params.meta] +msapplication_TileColor = "#2b5797" +msapplication_config = "https://cms.admin.containerize.com/templates/groupdocscloud/images/browserconfig.xml" +theme_color = "#ffffff" +author = "GroupDocs Cloud" + +# Title of 404 page +title_404_page = "404 - Page Not Found | GroupDocs Cloud Tutorials" + +# Open Grapgh settings +title = "GroupDocs Cloud Tutorials" +images = ["images/aspose-cloud-image-for-open-graph.jpg"] +description = "REST APIs along with open-source SDKs that allow developers to enhance applications with the capability to display, annotate, convert, e-sign, merge, classify, compare & translate documents in the Cloud" + + +# Set to true to disable breadcrumb navigation. +breadcrumb_disable = false +# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) +sidebar_search_disable = true +# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top nav bar +navbar_logo = false +# Set to true to disable the About link in the site footer +footer_about_disable = false + + +[minify] + disableCSS = false + disableHTML = false + disableJS = false + disableJSON = false + disableSVG = false + disableXML = false + minifyOutput = true + [minify.tdewolff] + [minify.tdewolff.css] + decimals = -1 + keepCSS2 = true + [minify.tdewolff.html] + keepConditionalComments = true + keepDefaultAttrVals = true + keepDocumentTags = true + keepEndTags = true + keepQuotes = false + keepWhitespace = false + [minify.tdewolff.js] + [minify.tdewolff.json] + [minify.tdewolff.svg] + decimals = -1 + [minify.tdewolff.xml] + keepWhitespace = false + +[Taxonomies] + +[deployment] +[[deployment.matchers]] +# Set custom content type for /sitemap.xml +#pattern = "^sitemap\\.xml$" +#pattern = "^[a-z]\\.xml$" +pattern = "^.+\\.(xml)$" +contentType = "application/xml" +gzip = true +force = true diff --git a/config/assembly/production/config.toml b/config/assembly/production/config.toml new file mode 100644 index 0000000..6dfc47c --- /dev/null +++ b/config/assembly/production/config.toml @@ -0,0 +1,9 @@ +baseURL = "https://tutorials.groupdocs.cloud/assembly" + +# Google Tag Manager settings +[params.gtm] +gtm_id = "GTM-T42TVBC" + +[[deployment.targets]] +name = "Production" +URL = "s3://tutorials.groupdocs.cloud/?prefix=assembly/®ion=us-west-2" diff --git a/config/assembly/staging/config.toml b/config/assembly/staging/config.toml new file mode 100644 index 0000000..c19334a --- /dev/null +++ b/config/assembly/staging/config.toml @@ -0,0 +1,8 @@ +baseURL = "https://qa-tutorials.groupdocs.cloud/assembly" + +[[deployment.targets]] +name = "Stage" +URL = "s3://qa-tutorials.groupdocs.cloud/?prefix=assembly /®ion=us-west-2" + + + diff --git a/content/assembly/english/_index.md b/content/assembly/english/_index.md new file mode 100644 index 0000000..6e3d043 --- /dev/null +++ b/content/assembly/english/_index.md @@ -0,0 +1,55 @@ +--- +title: GroupDocs.Assembly Cloud API Document Getting Started Tutorials +url: /assembly/ +weight: 1 +description: Learn how to use GroupDocs.Assembly Cloud API with our step-by-step tutorials for document automation and report generation. +--- + +# GroupDocs.Assembly Cloud API Document Getting Started Tutorials + +Welcome to our comprehensive tutorial series for GroupDocs.Assembly Cloud API. These hands-on tutorials are designed to help developers master document automation and report generation, providing a structured learning path from basic to advanced concepts. + +## Learning Path + +Our tutorials follow a logical progression, allowing you to build your knowledge step by step: + +1. Basic Concepts - Learn the fundamental principles of template-based document automation +2. Working with Data - Master data processing techniques like filtering, sorting, and formatting +3. Document Elements - Create dynamic lists, tables, charts, and other document elements +4. Advanced Techniques - Explore complex scenarios and best practices for enterprise solutions + +## Available Tutorials + +### Core Concepts + +- [Tutorial: Report Generation Concepts](/assembly/concepts/) - Learn the fundamental elements of report generation including tags, expressions, data bands, and conditional processing. +- [Tutorial: Working with Data](/assembly/working-with-data/) - Master techniques for data filtering, grouping, formatting, and using LINQ-based extensions in your templates. + +### Document Elements + +- [Tutorial: Working with Lists](/assembly/working-with-lists/) - Learn how to dynamically generate different types of lists with customized formatting options. +- [Tutorial: Working with Charts](/assembly/working-with-charts/) - Discover how to bind data to various chart types and customize their appearance dynamically. +- [Tutorial: Working with Other Elements](/assembly/working-with-other-elements/) - Learn to insert and customize hyperlinks, bookmarks, checkboxes, and barcodes. + +## Prerequisites + +Before starting these tutorials, we recommend: + +- Basic understanding of C# programming language +- Familiarity with document formats (DOCX, XLSX, PPTX, etc.) +- A GroupDocs.Assembly Cloud API account (free trial available) +- Your preferred development environment set up + +## Get Started Today + +Choose a tutorial from the list above and begin your journey to mastering document automation with GroupDocs.Assembly Cloud. Each tutorial includes practical examples, step-by-step instructions, and code samples to accelerate your learning. + +## Helpful Resources + +- [Product Page](https://products.groupdocs.cloud/assembly/) +- [Documentation](https://docs.groupdocs.cloud/assembly/) +- [Live Demo](https://products.groupdocs.app/assembly/family) +- [API Reference](https://reference.groupdocs.cloud/assembly/) +- [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) +- [Free Support](https://forum.groupdocs.cloud/c/assembly/15/) +- [Free Trial](https://dashboard.groupdocs.cloud/#/apps) diff --git a/content/assembly/english/concepts/_index.md b/content/assembly/english/concepts/_index.md new file mode 100644 index 0000000..1c5cea2 --- /dev/null +++ b/content/assembly/english/concepts/_index.md @@ -0,0 +1,346 @@ +--- +title: Understanding Report Generation Concepts in GroupDocs.Assembly Cloud Tutorial +url: /concepts/ +weight: 1 +description: Learn the fundamental concepts of report generation including templates, tags, expressions, data bands, and conditional processing in this GroupDocs.Assembly Cloud tutorial. +--- + +# Tutorial: Understanding Report Generation Concepts in GroupDocs.Assembly Cloud + +## Overview + +In this tutorial, you'll learn the fundamental concepts of report generation with GroupDocs.Assembly Cloud. Understanding these core concepts is essential for creating effective document automation solutions regardless of the document format or complexity. + +## Learning Objectives + +By the end of this tutorial, you will be able to: + +- Explain the report generation workflow in GroupDocs.Assembly Cloud +- Understand the structure and purpose of document templates +- Work with data sources in XML and JSON formats +- Use tags and expressions to create dynamic content +- Implement data bands for iterating through collections +- Apply conditional processing to customize document output + +## Prerequisites + +Before starting this tutorial, you should have: + +- A GroupDocs.Assembly Cloud account (sign up for a [free trial](https://dashboard.groupdocs.cloud/#/apps)) +- Basic understanding of document formats (DOCX, XLSX, PPTX, etc.) +- Familiarity with JSON and XML data structures +- Your development environment set up (any language with the GroupDocs.Assembly Cloud SDK installed) + +## The Report Generation Concept + +The fundamental concept of report generation is straightforward: + +1. You create a document template with special tags for dynamic content +2. You provide a data source containing the information to populate the template +3. GroupDocs.Assembly Cloud processes the template, replacing tags with actual data +4. The result is a dynamically generated document based on your template and data + +This process allows you to automatically generate multiple documents using the same template but with different data inputs. + +## Document Templates + +A document template is a standard document created with Microsoft Office, OpenOffice, or any other compatible office suite. What makes it a "template" is the inclusion of special tags that mark where and how dynamic content should be inserted. + +Templates can be created in various formats: +- Word processing documents (.docx, .odt, .rtf) +- Spreadsheets (.xlsx, .ods) +- Presentations (.pptx, .odp) +- HTML documents +- Email documents +- Plain text files + +### Try it yourself + +Create a simple Word document template with some static text and placeholders for dynamic content. For example: + +``` +Report for: <<[CompanyName]>> +Date: <<[ReportDate]>> +Total Orders: <<[Orders.Count()]>> +``` + +## Data Sources + +Data sources provide the information that will be used to populate your templates. GroupDocs.Assembly Cloud supports both JSON and XML formats for data sources. + +### XML Data Example + + + +### JSON Data Example + + + +### Supported Data Types + +You can use these common data types in your JSON and XML files: + +| Data Type | Description | XML Example | JSON Example | +|-----------|-------------|-------------|--------------| +| Int32 | 32-bit signed integer | `30` | `{"Age": "30"}` | +| Double | Double-precision floating-point | `253.9` | `{"Price": "253.9"}` | +| Boolean | True or False value | `True` | `{"IsChecked": "True"}` | +| DateTime | Point in time | `2019-10-01T00:00:00` | `{"OrderDate": "2019-10-01T00:00:00"}` | +| String | Text sequence | `John Doe` | `{"Name": "John Doe"}` | + +## Tags and Expressions + +Tags and expressions are the building blocks of template functionality. They instruct GroupDocs.Assembly Cloud on how to process and insert dynamic content. + +### Tag Structure + +A tag is surrounded by `<<` and `>>` delimiters and can include several elements: + +``` +<> +``` + +Some tags require a closing tag: + +``` +<>content<> +``` + +### Types of Tags + +Tags serve different functional roles in your templates: + +1. Control Tags - Manage flow and conditional processing + - `foreach`, `next` - For iterating through collections + - `if`, `else`, `elseif` - For conditional content + +2. Content Tags - Insert or format dynamic content + - `backColor` - Set text background color + - `link` - Insert hyperlinks + - `var` - Declare variables + +3. Chart Tags - Customize chart data visualization + - `seriesColor` - Set chart series colors + - `x`, `y` - Map data to chart coordinates + +### Expressions + +Expressions are used within tags to specify dynamic values or conditions. They use C#-style syntax and can include: + +- Data field references +- Operators (arithmetic, comparison, logical) +- Method calls +- LINQ queries + +#### Example: Simple Expression + +``` +<<[Customer.Name]>> +``` + +This expression retrieves the "Name" property from a "Customer" object. + +#### Example: Complex Expression + +``` +<<[Orders.Where(o => o.Total > 1000).Sum(o => o.Total)]>> +``` + +This expression calculates the sum of order totals where the total is greater than 1000. + +### C# SDK Implementation Example + + + +## Data Bands + +A data band is a template region that processes sequential data. It iterates through a collection of items, generating content for each item based on the data band body. + +### Data Band Structure + +A data band consists of: + +1. Opening and closing `foreach` tags defining the scope +2. A data band body that serves as a template for each item + +``` +<>data_band_body<> +``` + +Where: +- `varType` (optional) is the data type of each item +- `varName` (optional) is a variable name to reference each item +- `sequence` is the collection to iterate through + +### Example: Simple Data Band + +``` +<> +Name: <<[Name]>> +Age: <<[Age]>> +<> +``` + +This data band iterates through a "Persons" collection, outputting the name and age of each person. + +### Python SDK Implementation Example + + + +### Table-Row Data Bands + +When a data band is applied to table rows, it's called a Table-Row Data Band. This is useful for generating tabular data. + +#### Example: Table-Row Data Band + +``` +| Number | Name | Age | +|--------|------|-----| +| <><<[NumberOf()]>> | <<[Name]>> | <<[Age]>><> | +| Count | <<[Persons.Count()]>> | | +``` + +This creates a table with a row for each person, showing their number, name, and age. + +### Java SDK Implementation Example + + + +### Using the Next Tag + +The `next` tag forces movement to the next iteration within a data band. This is useful for displaying fixed numbers of items per row: + +``` +| Name A | Name B | Name C | +|--------|--------|--------| +| <><<[p.Name]>> | <><<[p.Name]>> | <><<[p.Name]>><> | +``` + +This table will display three person names per row. + +## Conditional Processing + +Conditional blocks allow you to include or exclude content based on conditions. This helps create more dynamic and context-aware documents. + +### Conditional Block Structure + +``` +<> + template_option_1 +<> + template_option_2 +<> + default_template_option +<> +``` + +### Example: Simple Conditional Block + +``` +< 1000]>> +Thank you for your large order! +<> +Thank you for your order. +<> +``` + +This outputs a special thank you message for orders exceeding $1000. + +### REST API Implementation with cURL + + + +### Nested Conditional Blocks + +You can nest conditional blocks for more complex logic: + +``` +<> +Your order has been completed. + <> + Expect delivery within 2 business days. + <> + Expect delivery within 5-7 business days. + <> +<> +Your order is being processed. +<> +We have received your order. +<> +``` + +## Combining Techniques: Complete Example + +Let's create a comprehensive example combining data bands and conditional processing: + +### Template + + + +### Implementation Using C# SDK + + + +## Practical Applications + +Here are some common real-world applications of these concepts: + +1. Invoices and Purchase Orders: + - Data bands for line items + - Conditional processing for different payment terms + - Expressions for calculating totals and taxes + +2. Employment Contracts: + - Conditional sections based on employee type + - Dynamic insertion of specific clauses + - Personalization with employee information + +3. Financial Reports: + - Data bands for transaction listings + - Conditional formatting for profit/loss indicators + - Expressions for financial calculations + +## Troubleshooting Common Issues + +When working with GroupDocs.Assembly Cloud templates, you might encounter these common issues: + +1. Missing closing tags - Always ensure each opening tag has a corresponding closing tag +2. Incorrect variable references - Verify that your data field paths match your data source structure +3. Syntax errors in expressions - Check your expressions for proper C# syntax +4. Nested tags confusion - Be careful with the order and nesting of multiple tags + +> Tip: Start with simple templates and gradually add complexity as you become more comfortable with the syntax. + +## What You've Learned + +In this tutorial, you've learned the fundamental concepts of report generation with GroupDocs.Assembly Cloud: + +- The overall report generation workflow +- How to structure document templates with tags and expressions +- Working with data sources in XML and JSON formats +- Implementing data bands to iterate through collections +- Applying conditional processing to customize document output +- Creating practical template examples that combine multiple techniques + +## Further Practice + +To reinforce your learning, try these exercises: + +1. Create a simple invoice template that iterates through line items +2. Build a report template with conditionally formatted sections +3. Implement a document that uses nested data bands for hierarchical data +4. Experiment with different expression types to manipulate data + +## Next Tutorial in the Learning Path + +Ready to continue your journey? Check out our [Tutorial: Working with Data](/working-with-data/) to learn advanced data manipulation techniques for your templates. + +## Helpful Resources + +- [Product Page](https://products.groupdocs.cloud/assembly/) +- [Documentation](https://docs.groupdocs.cloud/assembly/) +- [Live Demo](https://products.groupdocs.app/assembly/family) +- [API Reference](https://reference.groupdocs.cloud/assembly/) +- [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) +- [Free Support](https://forum.groupdocs.cloud/c/assembly/15/) +- [Free Trial](https://dashboard.groupdocs.cloud/#/apps) diff --git a/content/assembly/english/working-with-charts/_index.md b/content/assembly/english/working-with-charts/_index.md new file mode 100644 index 0000000..169a20c --- /dev/null +++ b/content/assembly/english/working-with-charts/_index.md @@ -0,0 +1,247 @@ +--- +title: How to Work with Charts in GroupDocs.Assembly Cloud Tutorial +weight: 5 +url: /working-with-charts/ +description: Learn how to dynamically generate and customize charts in your document templates with this step-by-step GroupDocs.Assembly Cloud tutorial. +--- + +# Tutorial: How to Work with Charts in GroupDocs.Assembly Cloud + +## Overview + +In this tutorial, you'll learn how to work with charts in GroupDocs.Assembly Cloud, creating dynamic document templates that can generate various types of data visualizations. Charts are powerful tools for presenting data in a visual format that makes trends and patterns immediately apparent. + +## Learning Objectives + +By the end of this tutorial, you will be able to: + +- Bind charts to dynamic data sources +- Configure different chart types (line, column, bar, pie, etc.) +- Customize chart appearance with dynamic titles and labels +- Set dynamic chart colors based on data values +- Apply filtering to chart series +- Create advanced multi-series charts + +## Prerequisites + +Before starting this tutorial, you should have: + +- A GroupDocs.Assembly Cloud account (sign up for a [free trial](https://dashboard.groupdocs.cloud/#/apps)) +- Basic understanding of template syntax and data processing +- Familiarity with chart types and their appropriate use cases +- Your development environment set up (any language with the GroupDocs.Assembly Cloud SDK installed) + +## Understanding Chart Components in Templates + +Charts in document templates contain several components that can be customized: + +1. Chart Title - The main heading of the chart +2. Series - Data sets represented in the chart +3. Data Points - Individual values within a series +4. Axes - The horizontal and vertical reference lines +5. Legend - The key explaining what each series represents + +GroupDocs.Assembly Cloud provides special tags to bind these components to your data source. + +## Binding a Chart to a Data Source + +The fundamental step in chart generation is binding it to your data source using chart series tags. + +### Basic Chart Setup Process + +1. Add a chart to your template at the desired location +2. Configure the chart's appearance (type, style, size) +3. Add required chart series and configure their appearance +4. Add a title to the chart if needed +5. Add template tags to make the chart dynamic + +### The Chart Tag Syntax + +To declare a chart that will be populated with data dynamically, use these special tags: + +- `foreach` tag in the chart title (opening tag only) +- `x` tags for x-axis values +- `y` tags for y-axis values + +### Sample Data Source + +For this tutorial, we'll use a sales data source: + + + +## Creating a Simple Column Chart + +Let's start with a basic column chart showing monthly sales. + +### Chart Setup + +1. Insert a column chart in your document +2. Set the chart title to: `<>Monthly Sales` +3. Add a single series with the name: `<>` +4. Add `<>` to the chart title after the `foreach` tag + +### How It Works + +1. The `foreach` tag in the title iterates through your data source +2. The `x` tag defines what data will appear on the x-axis (months) +3. The `y` tag defines what data will be displayed as column heights (sales amounts) + +### C# SDK Implementation Example + + + +## Customizing Chart Titles and Labels Dynamically + +You can make your charts more informative by dynamically setting titles and labels. + +### Chart Setup + +1. Insert a column chart in your document +2. Set the chart title to: `<>Sales for <<[Year]>>` +3. Add a series with the name: `<> in <<[Currency]>>` +4. Set the x-axis title to: `<<[Period]>>` + +### How It Works + +1. The expression `<<[Year]>>` in the title is replaced with the year value from your data +2. The y-axis series name includes both the amount and the currency +3. The x-axis title is set dynamically based on the period value (Monthly, Quarterly, etc.) + +### Python SDK Implementation Example + + + +## Excluding Chart Series Conditionally + +You can dynamically include or exclude series from your charts based on conditions. + +### Chart Setup + +1. Insert a chart with multiple series in your document +2. Add the `removeif` tag to any series you want to conditionally exclude +3. Add the condition inside the `removeif` tag + +Example series name with conditional removal: +``` +<><>Region A +``` + +### How It Works + +1. The `removeif` tag evaluates the condition `[TotalSales < 10000]` +2. If the condition returns `true`, the series is removed from the chart +3. If the condition returns `false`, the series remains in the chart + +### Java SDK Implementation Example + + + +## Working with Chart Colors + +You can dynamically set colors for chart series and individual data points. + +### Setting Series Colors + +Use the `seriesColor` tag to define the color of an entire series: + +``` +<><>Series Name +``` + +The color expression can return: +- A string with a known color name (e.g., "red") +- An integer RGB value (e.g., 0xFF0000 for red) +- A value of the Color type + +### Setting Point Colors + +Use the `pointColor` tag to color individual points in a series: + +``` +<><>Series Name +``` + +### Dynamic Coloring Example + + + +### REST API Implementation with cURL + + + +## Creating Different Chart Types + +GroupDocs.Assembly Cloud supports various chart types. Let's explore how to create some common ones. + +### Line Chart Example + + + +### Pie Chart Example + + + +### Bubble Chart Example + +For bubble charts, you'll need to use the `size` tag to define the bubble size: + +``` +<><><><>Product Performance +``` + + + +## Complete Example: Sales Performance Dashboard + +Let's create a comprehensive sales dashboard with multiple charts: + +### Template Setup + + + +### Implementation Using C# SDK + + + +## Troubleshooting Common Issues + +When working with charts in templates, you might encounter these common issues: + +1. Chart not showing data - Ensure your `x` and `y` tags are properly configured +2. Missing series - Check that your `removeif` conditions aren't unintentionally removing series +3. Incorrect color application - Verify your color expressions return valid values +4. Axis scaling problems - Consider using custom axis settings in your original chart template + +> Tip: Always test your charts with sample data of the same structure and scale as your production data. + +## What You've Learned + +In this tutorial, you've learned how to: +- Bind charts to dynamic data sources +- Customize chart titles, series, and colors dynamically +- Conditionally include or exclude chart series +- Create different types of charts (column, line, pie, bubble) +- Build comprehensive chart dashboards + +## Further Practice + +To reinforce your learning, try these exercises: + +1. Create a multi-series line chart showing trends over time with dynamic coloring +2. Implement a pie chart that highlights the largest segment with a different color +3. Build a column chart with year-over-year comparison and conditional formatting +4. Create a dashboard with complementary charts showing different aspects of the same data + +## Next Tutorial in the Learning Path + +Ready to continue your journey? Check out our [Tutorial: Working with Other Elements](/working-with-other-elements/) to learn how to work with hyperlinks, bookmarks, checkboxes, and barcodes in your documents. + +## Helpful Resources + +- [Product Page](https://products.groupdocs.cloud/assembly/) +- [Documentation](https://docs.groupdocs.cloud/assembly/) +- [Live Demo](https://products.groupdocs.app/assembly/family) +- [API Reference](https://reference.groupdocs.cloud/assembly/) +- [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) +- [Free Support](https://forum.groupdocs.cloud/c/assembly/15/) +- [Free Trial](https://dashboard.groupdocs.cloud/#/apps) diff --git a/content/assembly/english/working-with-data/_index.md b/content/assembly/english/working-with-data/_index.md new file mode 100644 index 0000000..126d852 --- /dev/null +++ b/content/assembly/english/working-with-data/_index.md @@ -0,0 +1,221 @@ +--- +title: Learn to Work with Data in GroupDocs.Assembly Cloud Tutorial +url: /working-with-data" +weight: 2 +description: Learn how to filter, sort, group and format data in your document templates with this step-by-step GroupDocs.Assembly Cloud tutorial. +--- + +# Tutorial: Learn to Work with Data in GroupDocs.Assembly Cloud + +## Overview + +In this tutorial, you'll learn how to work with data in GroupDocs.Assembly Cloud, applying powerful data processing techniques to create dynamic document templates. This is a fundamental skill for effective document automation and report generation. + +## Learning Objectives + +By the end of this tutorial, you will be able to: + +- Define and use variables in your templates +- Apply LINQ-based extension methods for data operations +- Filter, sort, and group data within your templates +- Format numeric, date-time, and string values +- Apply custom formatting options to your template data + +## Prerequisites + +Before starting this tutorial, you should have: + +- A GroupDocs.Assembly Cloud account (sign up for a [free trial](https://dashboard.groupdocs.cloud/#/apps)) +- Basic understanding of C# and LINQ concepts +- Familiarity with document template structure +- Your development environment set up (any language with the GroupDocs.Assembly Cloud SDK installed) + +## Using Variables in Templates + +Variables allow you to store and reuse values in your templates, making them more efficient and readable. This approach is particularly useful when you need to calculate expensive expression values just once and reuse them throughout your template. + +### How to Define Variables + +To declare a variable in your template, use the `var` tag with the following syntax: + +``` +<> +``` + +After declaring a variable, you can access its value using the variable's name. + +### Try it yourself + +Let's create a simple example that demonstrates variable declaration and usage: + +``` +<><<[s]>><><<[s]>> +``` + +This template will output "Hello, World!" in your document. Notice how the variable `s` is first assigned "Hello, " and then reassigned to "World!". + +> Note: You can redefine a variable's value using another `var` tag, but you cannot change its type once defined. + +## Using Extension Methods in Templates + +GroupDocs.Assembly Cloud provides powerful extension methods to manipulate data within your templates. Let's explore how to use them effectively. + +### Extension Methods of Iteration Variables + +The two primary extension methods for iteration variables are: + +- `IndexOf()` - Returns a zero-based index (0, 1, 2, ...) of a sequence element +- `NumberOf()` - Returns a one-based index (1, 2, 3, ...) of a sequence element + +#### Example: Using IndexOf() for Comma Separation + +``` +The items are: <><<[item.IndexOf() != 0? ", ": ""]>><<[item]>><>. +``` + +Given an array of `["item1", "item2", "item3"]`, this would produce: +``` +The items are: item1, item2, item3. +``` + +#### Example: Using NumberOf() for Item Numbering + +``` +<><<[item.NumberOf()]>>. <<[item]>> +<> +``` + +This would produce: +``` +1. item1 +2. item2 +3. item3 +``` + +### Using Enumeration Extension Methods + +GroupDocs.Assembly Cloud supports many LINQ-style extension methods for data manipulation. These methods allow you to perform operations like filtering, sorting, grouping, and aggregating data. + +Here's a GitHub Gist with examples of the most commonly used enumeration methods: + + + +## Data Formatting + +Formatting is a critical aspect of document generation. GroupDocs.Assembly Cloud provides flexible options for formatting various data types. + +### Basic Formatting Syntax + +The complete syntax for formatting expressions is: + +``` +<<[expression]:"format" -html>> +``` + +Where: +- `expression` is the value to be formatted +- `format` is an optional format string +- `-html` is an optional switch to treat the result as HTML + +### Formatting Numeric and DateTime Expressions + +For numeric and date-time values, you can specify standard .NET format strings: + +``` +<<[dateValue]:"yyyy.MM.dd">> +<<[price]:"C2">> +``` + +### Additional Number Formats + +GroupDocs.Assembly Cloud provides several specialized number formats: + +| Format | Description | Example | +|--------|-------------|---------| +| alphabetic | Formats integer as uppercase letter | A, B, C | +| roman | Formats integer as Roman numeral | I, II, III | +| ordinal | Adds ordinal suffix | 1st, 2nd, 3rd | +| cardinal | Converts to text representation | One, Two, Three | + +### Try it yourself + +Let's create a template that demonstrates various formatting options: + +``` +Date: <<[orderDate]:"MMMM d, yyyy">> +Amount: <<[amount]:"C2">> +Invoice #: <<[invoiceNumber]:alphabetic>> +Page <<[pageNumber]:ordinal>> of <<[totalPages]>> +``` + +## Practical Example: Filtering and Grouping Data + +Let's put everything together in a practical example. We'll create a sales report that: +1. Groups sales by product category +2. Filters out products with zero sales +3. Calculates totals for each category +4. Formats currency values appropriately + +### Template Code + + + +### Implementation in Different Languages + +#### C# SDK Example + + + +#### Python SDK Example + + + +#### Java SDK Example + + + +#### REST API with cURL + + + +## Troubleshooting Common Issues + +When working with data processing in templates, you might encounter these common issues: + +1. Incorrect data type conversion - Ensure your variables are properly typed and convert data as needed. +2. LINQ expression errors - Check your lambda expressions for correct syntax and use proper collection methods. +3. Formatting errors - Verify that your format strings follow the expected pattern for each data type. +4. Null reference errors - Always check for null values, especially when working with nested properties. + +> Tip: Use conditional logic (`if` tags) to handle potential null values and provide fallback formatting. + +## What You've Learned + +In this tutorial, you've learned how to: +- Define and use variables in templates +- Apply extension methods to manipulate iteration variables +- Use enumeration extension methods for data operations +- Format different data types with standard and custom formats +- Create practical templates with filtering, sorting, and grouping + +## Further Practice + +To reinforce your learning, try these exercises: + +1. Create a template that groups customer orders by month and calculates monthly totals +2. Build a report that filters products by price range and applies different formatting to different ranges +3. Develop a template that uses both IndexOf() and NumberOf() for custom listing formats + +## Next Tutorial in the Learning Path + +Ready to continue your journey? Head to our [Tutorial: Working with Lists](/working-with-lists/) to learn how to create dynamic bulleted, numbered, and custom lists in your documents. + +## Helpful Resources + +- [Product Page](https://products.groupdocs.cloud/assembly/) +- [Documentation](https://docs.groupdocs.cloud/assembly/) +- [Live Demo](https://products.groupdocs.app/assembly/family) +- [API Reference](https://reference.groupdocs.cloud/assembly/) +- [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) +- [Free Support](https://forum.groupdocs.cloud/c/assembly/15/) +- [Free Trial](https://dashboard.groupdocs.cloud/#/apps) diff --git a/content/assembly/english/working-with-lists/_index.md b/content/assembly/english/working-with-lists/_index.md new file mode 100644 index 0000000..9fa4584 --- /dev/null +++ b/content/assembly/english/working-with-lists/_index.md @@ -0,0 +1,250 @@ +--- +title: How to Work with Lists in GroupDocs.Assembly Cloud Tutorial +url: /working-with-lists/ +weight: 3 +description: Learn how to dynamically generate bulleted, numbered, and custom lists in your document templates with this step-by-step GroupDocs.Assembly Cloud tutorial. +--- + +# Tutorial: How to Work with Lists in GroupDocs.Assembly Cloud + +## Overview + +In this tutorial, you'll learn how to work with lists in GroupDocs.Assembly Cloud, creating dynamic document templates that can generate various types of lists. Lists are fundamental elements in documents that help organize information in a readable and structured format. + +## Learning Objectives + +By the end of this tutorial, you will be able to: + +- Create in-paragraph lists for embedding items within text +- Generate dynamic bulleted lists with custom formatting +- Implement numbered lists with automatic numbering +- Control nested list numbering with restart features +- Apply conditional formatting to list items +- Create multi-level lists with custom styling + +## Prerequisites + +Before starting this tutorial, you should have: + +- A GroupDocs.Assembly Cloud account (sign up for a [free trial](https://dashboard.groupdocs.cloud/#/apps)) +- Basic understanding of template syntax and data bands +- Familiarity with JSON or XML data sources +- Your development environment set up (any language with the GroupDocs.Assembly Cloud SDK installed) + +## Understanding List Types in Document Templates + +Documents support several list types, each with distinct visual presentations and use cases: + +1. In-paragraph lists - Items embedded within paragraph text +2. Bulleted lists - Items preceded by bullet symbols (•, ◦, ■, etc.) +3. Numbered lists - Items with sequential numbers or letters +4. Multi-level lists - Nested lists with hierarchical structure + +Let's explore how to implement each type using GroupDocs.Assembly Cloud templates. + +## Sample Data Source + +Throughout this tutorial, we'll use a sample product catalog as our data source: + +### XML Data Source + + + +### JSON Data Source + + + +## Creating an In-Paragraph List + +In-paragraph lists embed items within continuous text, using separators like commas or semicolons. + +### Template Syntax + +``` +We provide support for the following products: <><<[IndexOf() != 0 ? ", " : ""]>><<[ProductName]>><>. +``` + +### Result + +``` +We provide support for the following products: LG Nexus 5, Nokia Lumia 5801, Huawie Mate S, Moto Style. +``` + +### How It Works + +1. The `foreach` tag iterates through all products in the data source +2. The `IndexOf()` method determines if it's the first item (index 0) +3. For non-first items, a comma and space are added before the product name +4. Each product name is inserted using the `<<[ProductName]>>` expression + +### Try it yourself + +Create a simple template with an in-paragraph list of your own data. Try using different separators like semicolons or custom text. + +## Generating a Bulleted List + +Bulleted lists use symbols to visually separate items in a vertical list. + +### Template Syntax + +``` +• <><<[ProductName]>> +<> +``` + +### Result + +``` +• LG Nexus 5 +• Nokia Lumia 5801 +• Huawie Mate S +• Moto Style +``` + +### How It Works + +1. The bullet character (•) is placed at the beginning of the template line +2. The `foreach` tag iterates through all products +3. Each product name is placed on a new line with the bullet inheriting from the template + +### Try it yourself + +Create a bulleted list with different bullet symbols: +- Use standard bullets (•) +- Try squares (■) or other Unicode symbols +- Apply custom indentation to your list + +## Implementing a Numbered List + +Numbered lists automatically assign sequential numbers to items. + +### Template Syntax + +``` +1. <><<[ProductName]>> +<> +``` + +### Result + +``` +1. LG Nexus 5 +2. Nokia Lumia 5801 +3. Huawie Mate S +4. Moto Style +``` + +### How It Works + +1. Start with a numbered item in your template (1.) +2. The `foreach` tag iterates through the products +3. Document processors automatically continue the numbering sequence + +### C# SDK Implementation Example + + + +### Python SDK Implementation Example + + + +## Working with Nested Lists and Numbering Restart + +When working with nested lists, you may need to restart numbering for each outer list item. + +### Template Syntax + +``` +<><<[order.ClientName]>><<[order.ClientAddress]>> +1. <><><<[service.Name]>> +<><> +``` + +### How It Works + +1. The outer `foreach` loop iterates through orders +2. For each order, client information is displayed +3. The `<>` tag ensures numbering starts from 1 for each order's services +4. The inner `foreach` loop then lists all services with fresh numbering + +### Try it yourself + +Create a template with nested list structures that use the `restartNum` tag to control numbering behavior. + +## Applying Conditional Formatting to List Items + +You can dynamically apply different formatting to list items based on conditions. + +### Template Syntax + +``` +We provide support for the following products: +1. <><><<[ProductName]>> +2. <><<[ProductName]>><<><> +``` + +### Result + +This would produce a list with alternating background colors: +- Odd items have a pink background +- Even items have a teal background + +### How It Works + +1. The `foreach` tag iterates through all products +2. The `if` condition checks if the item index modulo 2 equals 1 (odd index) +3. Different style spans are applied based on the condition +4. The product name is displayed with the appropriate styling + +### REST API Implementation with cURL + + + +## Advanced List Techniques + +### Creating Custom-Formatted Multi-Level Lists + + + +### Combining Lists with Tables + +Lists can be combined with tables to create structured document layouts: + + + +## Troubleshooting Common Issues + +When working with lists in templates, you might encounter these common issues: + +1. Incorrect list indentation - Ensure proper nesting levels in your template +2. Numbering sequence errors - Check for proper use of the `restartNum` tag +3. Formatting inconsistencies - Verify that your conditional formatting is properly closed +4. Paragraph break problems - Pay attention to paragraph breaks in your templates + +> Tip: Always test your templates with small data sets first, then scale up to your complete data source. + +## What You've Learned + +In this tutorial, you've learned how to: +- Create different types of lists (in-paragraph, bulleted, numbered) +- Control list numbering with the `restartNum` tag +- Apply conditional formatting to list items +- Implement advanced list techniques for complex documents + +## Further Practice + +To reinforce your learning, try these exercises: + +1. Create a multi-level list that shows product categories and their items +2. Implement a numbered list with custom number formatting (Roman numerals or letters) +3. Build a conditionally formatted list that highlights special items based on price or inventory + +## Helpful Resources + +- [Product Page](https://products.groupdocs.cloud/assembly/) +- [Documentation](https://docs.groupdocs.cloud/assembly/) +- [Live Demo](https://products.groupdocs.app/assembly/family) +- [API Reference](https://reference.groupdocs.cloud/assembly/) +- [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) +- [Free Support](https://forum.groupdocs.cloud/c/assembly/15/) +- [Free Trial](https://dashboard.groupdocs.cloud/#/apps) diff --git a/content/assembly/english/working-with-other-elements/_index.md b/content/assembly/english/working-with-other-elements/_index.md new file mode 100644 index 0000000..8acc9c3 --- /dev/null +++ b/content/assembly/english/working-with-other-elements/_index.md @@ -0,0 +1,347 @@ +--- +title: How to Work with Hyperlinks, Bookmarks, Checkboxes, and Barcodes Tutorial +url: /working-with-other-elements" +weight: 6 +description: Learn how to dynamically insert and customize hyperlinks, bookmarks, checkboxes, and barcodes in your document templates with this step-by-step GroupDocs.Assembly Cloud tutorial. +--- + +# Tutorial: How to Work with Hyperlinks, Bookmarks, Checkboxes, and Barcodes + +## Overview + +In this tutorial, you'll learn how to work with various special elements in GroupDocs.Assembly Cloud, including hyperlinks, bookmarks, checkboxes, and barcodes. These elements enhance document functionality and provide interactive features that make your documents more useful and professional. + +## Learning Objectives + +By the end of this tutorial, you will be able to: + +- Insert dynamic hyperlinks to external resources and internal bookmarks +- Create and use bookmarks for document navigation +- Set checkbox states conditionally based on data values +- Generate and insert barcode images with customized properties +- Apply these special elements across different document formats + +## Prerequisites + +Before starting this tutorial, you should have: + +- A GroupDocs.Assembly Cloud account (sign up for a [free trial](https://dashboard.groupdocs.cloud/#/apps)) +- Basic understanding of template syntax and data processing +- Familiarity with different document formats (Word, Excel, PowerPoint) +- Your development environment set up (any language with the GroupDocs.Assembly Cloud SDK installed) + +## Working with Hyperlinks + +Hyperlinks allow you to add clickable references to web pages, email addresses, or locations within the same document. GroupDocs.Assembly Cloud supports dynamic hyperlink generation in various document formats. + +### Hyperlink Types in Different Document Formats + +The behavior of hyperlinks varies slightly depending on the document format: + +1. Word-processing documents and emails - Links to external resources or internal bookmarks +2. Spreadsheet documents - Links to cells or cell ranges +3. Presentation documents - Links to slides within the presentation + +Let's explore each type. + +### Inserting Hyperlinks in Word Documents + +Use the `link` tag to insert hyperlinks in Word documents: + +``` +<> +``` + +Where: +- `reference` is an URI or bookmark name +- `text` (optional) is the link text to display + +#### Example: External URL + +``` +Visit our website: <> +``` + +This will create a hyperlink with the text "GroupDocs" that links to the URL "https://www.groupdocs.com". + +#### Example: Internal Bookmark + +``` +See details in the <>. +``` + +This creates a link to a bookmark named "AppendixA" within the same document. + +### C# SDK Implementation Example + + + +### Inserting Hyperlinks in Spreadsheets + +In spreadsheet documents, the `reference` parameter represents a cell or cell range. + +#### Common Spreadsheet Reference Formats + +| Description | Format | Example | +| --- | --- | --- | +| Local cell reference | `cellName` | B11 | +| Cell in another worksheet | `worksheetName!cellName` | Sheet2!A1 | +| Local cell range | `startCellName:endCellName` | B3:B7 | +| Cell range in another worksheet | `worksheetName!startCellName:endCellName` | Sheet3!A2:C2 | + +#### Example: Cell Reference + +``` +See Monthly Total: <> +``` + +### Python SDK Implementation Example + + + +### Inserting Hyperlinks in Presentations + +In presentations, the `reference` parameter refers to slides within the same presentation. + +#### Example: Slide Reference + +``` +<> +``` + +This creates a link to the second slide in the presentation. + +### Try it yourself + +Create a template with various hyperlinks: +1. A link to an external website +2. A link to a bookmark within the document +3. For spreadsheets, a link to another cell or range +4. For presentations, a link to another slide + +## Working with Bookmarks + +Bookmarks allow you to mark specific locations in your document for navigation or reference. + +### Inserting Bookmarks + +Use the `bookmark` tag to insert bookmarks in Word documents: + +``` +<>content<> +``` + +Where: +- `bookmarkName` is the name of the bookmark +- `content` is the text or elements contained within the bookmark + +#### Example: Creating a Bookmark + +``` +<>Section 1: Introduction<> +``` + +This creates a bookmark named "section1" containing the text "Section 1: Introduction". + +### Dynamic Bookmark Names + +You can generate bookmark names dynamically: + +``` +<><><<[ProductName]>><><> +``` + +This creates a bookmark for each product with a name like "product_1", "product_2", etc. + +### Java SDK Implementation Example + + + +## Setting Checkbox Values + +Checkboxes are useful for forms and documents requiring visual indicators of status or selection. + +### Adding and Controlling Checkboxes + +To set a checkbox state (checked or unchecked) dynamically: + +1. Add a Checkbox content control to your document template +2. Edit the content control properties and add a `check` tag to its title: + +``` +<> +``` + +Where: +- `condition` is a boolean expression that determines if the checkbox is checked + +#### Example: Simple Condition + +``` +< 100]>> +``` + +This checkbox will be checked if the Price value is greater than 100. + +#### Example: Complex Condition + +``` +< MinimumOrder)]>> +``` + +This checkbox will be checked if the product is available AND the quantity exceeds the minimum order. + +### REST API Implementation with cURL + + + +## Generating and Inserting Barcode Images + +Barcodes are valuable for adding machine-readable information to your documents. + +### Adding a Barcode + +To generate and insert a barcode: + +1. Add a Textbox to your template +2. Set standard textbox settings (size, position, etc.) +3. Add a `barcode` tag within the textbox: + +``` +<> +``` + +Where: +- `barcodeText` is the text to encode in the barcode +- `barcodeType` is the type of barcode to generate + +### Barcode Customization + +You can customize the barcode appearance with additional attributes: + +``` +<> +``` + +Where: +- `scalingFactor` is the percentage of barcode symbol scaling +- `height` is the percentage of the overall barcode image height + +#### Example: Simple Barcode + +``` +<> +``` + +This generates a CODABAR barcode encoding the text "30734690". + +#### Example: Customized Barcode + +``` +<> +``` + +This generates a CODABAR barcode with 150% scaling and a height equal to 67% of the barcode image. + +### C# SDK Implementation Example + + + +### Supported Barcode Types + +GroupDocs.Assembly Cloud supports a wide range of barcode types. Here are some of the most commonly used: + +| Barcode Type | Description | +| --- | --- | +| codabar | CODABAR Barcode | +| code128 | CODE 128 barcode | +| ean13 | EAN-13 barcode | +| qr | QR Code barcode | +| pdf417 | Pdf417 barcode | +| datamatrix (dm) | DataMatrix barcode | +| upca | UPC-A barcode | +| isbn | ISBN barcode | + +> Note: For a complete list of supported barcode types, refer to the [official documentation](https://docs.groupdocs.cloud/assembly/). + +### Python SDK Implementation Example + + + +## Complete Example: Product Information Document + +Let's create a comprehensive product information document that incorporates hyperlinks, bookmarks, checkboxes, and barcodes: + +### Template Setup + + + +### Implementation Using C# SDK + + + +## Practical Applications + +Here are some practical uses for the elements covered in this tutorial: + +1. Invoices and Purchase Orders: + - Barcodes for product identification + - Checkboxes for payment status + - Hyperlinks to payment portals + +2. Product Catalogs: + - Bookmarks for each product category + - Hyperlinks to detailed specifications + - Barcodes for inventory management + +3. Interactive Reports: + - Hyperlinks between sections + - Checkboxes for completion status + - Bookmarks for executive summary sections + +## Troubleshooting Common Issues + +When working with these special elements, you might encounter these issues: + +1. Hyperlinks not working - Ensure your reference format matches the document type +2. Bookmarks not visible - Check if bookmarks are enabled for viewing in your document viewer +3. Checkbox state not changing - Verify your conditional expression returns a boolean value +4. Barcode not generating - Confirm the barcode text is valid for the chosen barcode type + +> Tip: Always test your templates with sample data before deploying to production. + +## What You've Learned + +In this tutorial, you've learned how to: +- Insert and customize hyperlinks in different document formats +- Create and use bookmarks for document navigation +- Set checkbox states conditionally based on data +- Generate and insert various types of barcodes +- Apply these elements in practical document scenarios + +## Further Practice + +To reinforce your learning, try these exercises: + +1. Create a product catalog with bookmarks for each section and hyperlinks to external resources +2. Build an order form with checkboxes for payment methods and a barcode for the order number +3. Design an interactive report with navigation hyperlinks between sections +4. Implement a document with dynamically generated barcodes based on data values + +## Next Steps in Your Learning Path + +Congratulations on completing our tutorial series! You now have a solid foundation in using GroupDocs.Assembly Cloud for document automation. To continue developing your skills: + +1. Explore our [API Reference](https://reference.groupdocs.cloud/assembly/) for advanced features +2. Check out our [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) for tips and case studies +3. Join our [Community Forum](https://forum.groupdocs.cloud/c/assembly/15/) to connect with other developers + +## Helpful Resources + +- [Product Page](https://products.groupdocs.cloud/assembly/) +- [Documentation](https://docs.groupdocs.cloud/assembly/) +- [Live Demo](https://products.groupdocs.app/assembly/family) +- [API Reference](https://reference.groupdocs.cloud/assembly/) +- [Blog](https://blog.groupdocs.cloud/categories/groupdocs.assembly-cloud-product-family/) +- [Free Support](https://forum.groupdocs.cloud/c/assembly/15/) +- [Free Trial](https://dashboard.groupdocs.cloud/#/apps)