1. コンテンツ管理の構成

テンプレートからPDFを生成する

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Content Hubでは、エンティティのプロパティとリレーション (アセットへの注釈のPDFレポート など) に基づいて、印刷テンプレートからPDFファイルを生成できます。

大事な

PDFを生成するには、Print.EntityGenerationTemplate定義とM.Action定義の両方に対して少なくともReadつの権限が必要です。

PDF生成機能を設定するには、次の操作を行う必要があります。

メモ

生成されたPDFファイルは、Downloadsページでダウンロードできます。Content Hubは、PDFレンディションの処理を2 GB以下のファイルに制限します。

印刷テンプレートZIPパッケージの例

このセクションでは、Moduleという名前のエンティティと共に使用される印刷テンプレートZIPパッケージの例を示します。このエンティティには、Featureという関連エンティティのリストが含まれています。

ZIPパッケージには、次のファイルが含まれています。

  • Module.json - 使用するModuleプロパティと、関連するエンティティ(この場合はFeatureエンティティ)を指定するメインファイル。

  • Module.cshtml - PDFファイルで定義されているModuleプロパティの構造をHTML形式で指定します。このファイルは、他の .cshtmlファイルを参照して、構造内に埋め込むことができます。

  • Feature.cshtml - PDFファイルで定義されているFeatureプロパティの構造をHTML形式で指定します。このファイルは、他の .cshtmlファイルに埋め込むことができます。

  • CSSファイル: .cshtmlファイルに関連するCSSが含まれています。

モジュールjson

module.jsonファイルの例を次に示します。

    json
    {
        "template": {
            "type": "Template",
            "file": "module.cshtml",
            "source": {
                "type": "entity",
                "variables": [
                    {
                        "name": "TopTitleLabel",
                        "type": "snippet",
                        "value": {
                            "en-US": "Module Specifications"
                        }
                    },
                    {
                        "name": "Preview",
                        "type": "rendition",
                        "lowRes": {
                            "property": "Renditions",
                            "rendition": "preview"
                         },
                        "highRes": {
                            "property": "MainFile"
                        },
                        "relation": {
                            "name": "ModuleToMasterAsset",
                            "role": "Parent",
                            "relation": {
                                "name": "MasterFile",
                                "role": "Parent"
                            }
                        }
                    },
                    {
                    "name": "FeaturesLabel",
                    "type": "snippet",
                    "value": {
                            "en-US": "Features"
                            }
                    },
                    {
                    "name": "ModuleName",
                    "type": "property",
                    "property": "ModuleName"
                    },
                    {
                    "name": "ModuleDescription",
                    "type": "property",
                    "property": "ModuleDescription"
                    },
                    {
                        "name": "Features",
                        "type": "Template",
                        "template": {
                            "type": "Template",
                            "file": "features.cshtml",
                            "source": {
                                "type": "relation",
                                "relation": {
                                    "name": "ModuleToFeature",
                                    "role": "Parent"
                                            },
                                "variables": [
                                    {
                                    "name": "FeatureName",
                                    "type": "property",
                                    "property": "FeatureName"
                                    },
                                    {
                                    "name": "FeatureDescription",
                                    "type": "property",
                                    "property": "FeatureDescription"
                                    },
                                    {
                                    "name": "FeatureType",
                                    "type": "property",
                                    "property": "FeatureType"
                                    }
                                ]
                            }
                        }
                    }
                ]
            }
        }
  }
手記

オプション・リスト変数を正しく印刷するには、"type": "datasource".

module.jsonファイルには、関連エンティティの関係タイプとアクセスプロパティを含めることもできます。たとえば、キャンペーンにリンクされた記事を取得し、リレーションを介して名前とライフサイクルステータスを取得し、articles.cshtmlファイルを使用してレンダリングできます。

{
            "name": "Articles",
            "type": "Template",
            "template": {
                "type": "Template",
                "file": "articles.cshtml",
                "source": {
                    "type": "relation",
                    "relation": {
                        "name": "CampaignToContent",
                        "role": "Child"
                    },
                    "variables": [
                      {
                        "name": "ArticleStatus",
                        "type": "relation",
                        "relation": {
                          "name": "ContentLifeCycleToContent",
                          "role": "parent",
                          "property": "ContentLifeCycle.Label"
                        }
                      },
                        {
                            "name": "ArticleName",
                            "type": "property",
                            "property": "Content.Name"
                        },
                    ]
                }
            }
        }

モジュールcshtml

module.cshtmlファイルの例を次に示します。

html
@model Stylelabs.M.Print.EntityGeneration.Models.Model

<html>
    <head>
        <link rel="stylesheet" href="bootstrap.min.css" />
        <link rel="stylesheet" href="styles.css" />
        <title>Module specification</title>
    </head>
    <body>
        <div class="top-header">
            <img src="/logo.png" class="logo" />
            <h5 class="top-title">
            @Raw(@Model.Properties["$$TopTitleLabel$$"].FirstOrDefault())
            </h5>
        </div>
        <div class="container-wrapper">
            <div class="container">
                <div class="row">
                    <div class="col-xs-8">
                    <h1>@Raw(@Model.Properties["$$ModuleName$$"].FirstOrDefault())</h1>
                        <div class="lead">
                        @Raw(@Model.Properties["$$ModuleDescription$$"].FirstOrDefault())
                        </div>
                    </div>
                <div class="col-xs-4">
                <img src="@(@Model.Properties["$$Preview$$"].FirstOrDefault())" d>
                </div>
            </div>
        </div>
        </div>
        <div class="container">
            <h5>@Raw(@Model.Properties["$$FeaturesLabel$$"].FirstOrDefault())</h5>
                <div class="features-wrapper">
                @foreach (var feature in @Model.Properties["$$Features$$"]) {
                @Raw(feature) }
                </div>
            </div>
    </body>
</html>

module.jsonファイルにリレーションタイプと関連エンティティのアクセスプロパティを含めると、module.cshtmlファイルはアーティクルをレンダリングし、Model.Propertiesディクショナリから値を取得してその名前とステータスを表示します。

@model Stylelabs.M.Print.EntityGeneration.Models.Model
@using System.Linq
<div class="article">
  <h1 class="diser-title">
  @if (Model.Properties.ContainsKey("$$ArticleName$$"))
        {
              @Raw(@Model.Properties["$$ArticleName$$"].FirstOrDefault())
        }
  </h1>
  <p>
   <h5>Salesforce Article Status: 
  @if (Model.Properties.ContainsKey("$$ArticleStatus$$"))
        {
              @Raw(@Model.Properties["$$ArticleStatus$$"].FirstOrDefault())
        }
 </h5>
 </p>
</div>

機能cshtml

feature.cshtmlファイルの例を次に示します。

html
    @model Stylelabs.M.Print.EntityGeneration.Models.Model
        <h4>
            @Raw(@Model.Properties["$$FeatureName$$"].FirstOrDefault()) @*<span
            class="type"
            >@Raw(@Model.Properties["$$FeatureType$$"].FirstOrDefault())</span
            >*@
        </h4>
    <div class="feature-description">
        @Raw(@Model.Properties["$$FeatureDescription$$"].FirstOrDefault())
    </div>
この記事を改善するための提案がある場合は、 お知らせください!