agentsclimarketplace

Syncfusion angular pdf viewer

Skill syncfusion/pdf-viewer-sdk-skills/skills/syncfusion-angular-pdf-viewer

This repository contains agent prompts for creating skills and organizing AI agent capabilities.

Install
npx -y skills add syncfusion/pdf-viewer-sdk-skills --skill syncfusion-angular-pdf-viewer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Implements the Syncfusion Angular PDF Viewer (PdfViewerComponent) for embedding, configuring, and loading PDF documents. Use this when rendering PDFs in an Angular application, embedding viewer controls, or generating TS/CSS code for PDF display and interaction.

SKILL.md

9.7 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it

Syncfusion Angular PDF Viewer UI Sample Generator

Target package: @syncfusion/ej2-angular-pdfviewer

Mandatory 3-Step workflow (Strict Enforcement)

EVERY query MUST follow these steps sequentially:

STEP 1: Workspace Detection ? STEP 2: Read Reference File ? STEP 3: Generate Code

Blocking Rules

  1. NO code generation until Steps 1 & 2 are complete
  2. NO assumptions - Always verify workspace AND read reference files first
  3. NO undocumented APIs - Use ONLY APIs from reference files

Violation = STOP and restart with proper protocol


Mandatory Workflow

STEP 1: Workspace Detection (REQUIRED - DO THIS FIRST)

Execute these tools:

1. file_search: **/{package.json,angular.json,tsconfig.json}
2. list_dir: src/app/
3. read_file: package.json (if exists)

Report to user:

?? STEP 1 COMPLETE:
- Workspace: [Empty / Angular X.X project detected]
- Files found: [list]
- Decision: [Create new / Use existing]

STEP 2: Read Reference File (REQUIRED - DO THIS SECOND)

Execute these steps:

1. Match user query to Reference File Routing Guide below
2. Use read_file on: references\[filename].md
3. Extract ALL steps/APIs from reference file

Report to user:

?? STEP 2 COMPLETE:
- Reference file: [filename.md]
- Steps found: [list sequential steps]
- APIs validated: [list properties/methods used]

STEP 3: Generate Code (EXECUTE ONLY AFTER STEPS 1 & 2)

Validation checklist:

  • Every API cross-referenced against reference file
  • No invented/assumed properties used
  • Angular patterns followed (component bindings, lifecycle hooks)
  • If API not in reference file ? DELETE it

If feature not in reference file:

? FEATURE NOT SUPPORTED
The requested [feature/API] is not documented.
Available alternatives: [list from reference files]

Reference File Routing Guide

Core Setup

User Query KeywordsReference FilePurpose
"basic", "create sample", "getting started", "load PDF"getting-started.mdMinimal PDFViewer setup
"configuration", "server settings", "locale"general-properties.mdCore viewer properties
"disable", "hide features", "enable/disable", "read-only"enable-properties.mdFeature toggles

Navigation

User Query KeywordsReference FilePurpose
"page navigation", "next/previous page", "go to page"page-navigation.mdPage controls
"bookmarks", "table of contents", "TOC", "outline"bookmark-navigation.mdBookmark navigation (use ViewChild)
"hyperlinks", "external links", "URL navigation"hyperlink-navigation.mdLink handling
"thumbnails", "preview pages", "thumbnail panel"thumbnail-navigation.mdThumbnail panel

Viewing & Interaction

User Query KeywordsReference FilePurpose
"zoom", "magnification", "fit to page", "scale"magnification.mdZoom controls
"text selection", "panning", "scroll mode"interaction-mode.mdInteraction modes
"select text", "copy text"text-selection.mdText selection
"search", "find in PDF", "highlight search"text-search.mdSearch functionality

Toolbar & Context Menu

User Query KeywordsReference FilePurpose
"customize toolbar", "hide toolbar items", "remove buttons"toolbar-settings.mdToolbar configuration
"show/hide toolbar dynamically", "toggle toolbar"toolbar-methods.mdProgrammatic toolbar control
"right-click menu", "context menu", "custom menu"contextmenu.mdContext menu

Annotations

User Query KeywordsReference FilePurpose
"annotation colors", "annotation styles", "customize annotations"annotation-settings.mdAnnotation appearance
"annotation events", "when annotation added", "annotation callbacks"annotation-events.mdAnnotation lifecycle
"annotation labels", "shape labels", "measurement labels"shape-label-settings.mdLabel customization
"ink annotation", "freehand drawing", "signature", "sketch", "handwritten notes"ink-annotation.mdInk annotations
"redaction", "redact content", "black out text"redaction-annotation.mdRedaction annotations

Forms

User Query KeywordsReference FilePurpose
"form field defaults", "form field styles"form-field-settings.mdForm field config
"form field events", "field changes", "validation"form-field-events.mdForm field events

Document Actions

User Query KeywordsReference FilePurpose
"download PDF", "save PDF", "export"download.mdDownload functionality
"print PDF", "print document"print.mdPrint functionality
"reorder pages", "rotate pages", "add/remove pages"organize-pages.mdPage manipulation

Advanced

User Query KeywordsReference FilePurpose
"load programmatically", "API methods", "extract text"api-methods.mdProgrammatic control
"event list", "all events", "event reference"events.mdComplete event list

Toolbar Item Name Validation (CRITICAL)

When generating toolbar configurations:

  1. ALWAYS read toolbar-settings.md first
  2. Use ONLY names from these sections:
    • "Available Primary Toolbar Items"
    • "Available Annotation Toolbar Items"
    • "Available Form Designer Items"
  3. Character-by-character validation required - No typos allowed

Common mistakes to prevent:

  • ? AnotatetionEditTool ? ? AnnotationEditTool
  • ? CalibrationOption ? ? CalibrateTool
  • ? ShapeAnnotationOption ? ? ShapeTool

Quick Start Example

Add the Angular PDF Viewer by using <ejs-pdfviewer> selector in the template section of the src/app/app.ts file to render the PDF Viewer component.

import { Component, OnInit } from '@angular/core';
import { PdfViewerModule, LinkAnnotationService, BookmarkViewService,
         MagnificationService, ThumbnailViewService, ToolbarService,
         NavigationService, TextSearchService, TextSelectionService,
         PrintService, FormDesignerService, FormFieldsService,
         AnnotationService, PageOrganizerService } from '@syncfusion/ej2-angular-pdfviewer';

@Component({
  selector: 'app-root',
  // specifies the template string for the PDF Viewer component
  template: `<div class="content-wrapper">
                <ejs-pdfviewer id="pdfViewer"
                    [documentPath]='document'
                    [resourceUrl]='resource'
                    style="height:640px;display:block">
                </ejs-pdfviewer>
             </div>`,
  imports: [ PdfViewerModule ],
  providers: [ LinkAnnotationService, BookmarkViewService, MagnificationService,
               ThumbnailViewService, ToolbarService, NavigationService,
               TextSearchService, TextSelectionService, PrintService,
               AnnotationService, FormDesignerService, FormFieldsService, PageOrganizerService]
})
export class AppComponent implements OnInit {
  public document: string = 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf';
  public resource: string = window.location.origin + "/assets/ej2-pdfviewer-lib";
  
  ngOnInit(): void {
  }
}

Settings Configurations

Rule 1: Simple Settings (1-3 properties) ? Inline

public annotationSelection = {
  selectionBorderColor: 'blue',
  resizerSize: 8
};

Rule 2: Complex Settings (4+ properties or enums) ? Import enums

import { AnnotationResizerLocation, CursorType } from '@syncfusion/ej2-angular-pdfviewer';

public annotationSelection = {
  selectionBorderColor: '#0000ff',
  resizerSize: 8,
  resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,
  resizerCursorType: CursorType.grab
};

Protocol Violation Handling

ViolationFix
Skipped Step 1Re-run: Use file_search and list_dir first
Skipped Step 2Re-run: Use read_file on reference file
Used undocumented APIDelete it, check reference for alternatives
Didn't report findingsReport: "I checked X, found Y, now doing Z"

If user calls out violation: IMMEDIATELY acknowledge, apologize, and restart with proper protocol.


Enforcement Checklist

Before generating code, verify:

  • Step 1 executed (workspace detection) and reported
  • Step 2 executed (reference file read) and reported
  • Every API validated against reference file
  • No undocumented APIs used
  • Angular patterns followed

Reference files are SOURCE OF TRUTH - everything must trace back to them.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.