{"id":44193075,"url":"https://github.com/templatefoxpdf/csharpsdk","last_synced_at":"2026-04-27T16:00:43.333Z","repository":{"id":336494455,"uuid":"1149888683","full_name":"TemplateFoxPDF/csharpsdk","owner":"TemplateFoxPDF","description":"Official TemplateFox C# SDK - Generate PDFs from HTML templates via API","archived":false,"fork":false,"pushed_at":"2026-04-12T18:48:44.000Z","size":227,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-12T19:23:36.613Z","etag":null,"topics":["csharp","document-generation","dotnet","dotnet-library","html-to-pdf","invoice-generator","nuget","pdf","pdf-api","pdf-as-a-service","pdf-generator","pdf-template","template-engine"],"latest_commit_sha":null,"homepage":"https://pdftemplateapi.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TemplateFoxPDF.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-04T16:31:25.000Z","updated_at":"2026-04-12T18:48:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/TemplateFoxPDF/csharpsdk","commit_stats":null,"previous_names":["templatefoxpdf/csharpsdk"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/TemplateFoxPDF/csharpsdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemplateFoxPDF%2Fcsharpsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemplateFoxPDF%2Fcsharpsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemplateFoxPDF%2Fcsharpsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemplateFoxPDF%2Fcsharpsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemplateFoxPDF","download_url":"https://codeload.github.com/TemplateFoxPDF/csharpsdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemplateFoxPDF%2Fcsharpsdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32343571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","document-generation","dotnet","dotnet-library","html-to-pdf","invoice-generator","nuget","pdf","pdf-api","pdf-as-a-service","pdf-generator","pdf-template","template-engine"],"created_at":"2026-02-09T18:07:28.208Z","updated_at":"2026-04-27T16:00:43.323Z","avatar_url":"https://github.com/TemplateFoxPDF.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TemplateFox C# SDK\n\nOfficial .NET SDK for [TemplateFox](https://templatefox.com) - Generate PDFs from HTML templates via API.\n\n[![NuGet version](https://badge.fury.io/nu/TemplateFox.SDK.svg)](https://www.nuget.org/packages/TemplateFox.SDK)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Installation\n\n### Package Manager\n\n```powershell\nInstall-Package TemplateFox.SDK\n```\n\n### .NET CLI\n\n```bash\ndotnet add package TemplateFox.SDK\n```\n\n### PackageReference\n\n```xml\n\u003cPackageReference Include=\"TemplateFox.SDK\" Version=\"1.0.0\" /\u003e\n```\n\n## Quick Start\n\n```csharp\nusing TemplateFox.SDK.Api;\nusing TemplateFox.SDK.Client;\nusing TemplateFox.SDK.Model;\n\n// Initialize the client\nvar config = new Configuration\n{\n    ApiKey = new Dictionary\u003cstring, string\u003e\n    {\n        { \"x-api-key\", \"your-api-key\" }\n    }\n};\n\nvar api = new PDFApi(config);\n\n// Generate a PDF\nvar request = new CreatePdfRequest(\n    templateId: \"YOUR_TEMPLATE_ID\",\n    data: new Dictionary\u003cstring, object\u003e\n    {\n        { \"name\", \"John Doe\" },\n        { \"invoice_number\", \"INV-001\" },\n        { \"total_amount\", 150.00 }\n    }\n);\n\ntry\n{\n    var response = await api.CreatePdfAsync(request);\n    Console.WriteLine($\"PDF URL: {response.Url}\");\n    Console.WriteLine($\"Credits remaining: {response.CreditsRemaining}\");\n}\ncatch (ApiException e)\n{\n    Console.WriteLine($\"Error: {e.Message}\");\n}\n```\n\n## Features\n\n- **Template-based PDF generation** - Create templates with dynamic variables, generate PDFs with your data\n- **Multiple export options** - Get a signed URL (default) or raw binary PDF\n- **S3 integration** - Upload generated PDFs directly to your own S3-compatible storage\n- **.NET Standard 2.0** - Compatible with .NET Core 2.0+, .NET 5+, and .NET Framework 4.6.1+\n\n## API Methods\n\n### PDF Generation\n\n```csharp\nvar request = new CreatePdfRequest(\n    templateId: \"TEMPLATE_ID\",\n    data: new Dictionary\u003cstring, object\u003e { { \"name\", \"John Doe\" } },\n    exportType: ExportType.Url,       // Url or Binary\n    expiration: 86400,                // URL expiration in seconds\n    filename: \"invoice-001\"           // Custom filename\n);\n\nvar response = await api.CreatePdfAsync(request);\n```\n\n### Templates\n\n```csharp\nvar templatesApi = new TemplatesApi(config);\n\n// List all templates\nvar templates = await templatesApi.ListTemplatesAsync();\nforeach (var template in templates.Templates)\n{\n    Console.WriteLine($\"{template.Id}: {template.Name}\");\n}\n\n// Get template fields\nvar fields = await templatesApi.GetTemplateFieldsAsync(\"TEMPLATE_ID\");\nforeach (var field in fields)\n{\n    Console.WriteLine($\"{field.Key}: {field.Type} (required: {field.Required})\");\n}\n```\n\n### Account\n\n```csharp\nvar accountApi = new AccountApi(config);\n\n// Get account info\nvar account = await accountApi.GetAccountAsync();\nConsole.WriteLine($\"Credits: {account.Credits}\");\nConsole.WriteLine($\"Email: {account.Email}\");\n\n// List transactions\nvar transactions = await accountApi.ListTransactionsAsync(limit: 100, offset: 0);\nforeach (var tx in transactions.Transactions)\n{\n    Console.WriteLine($\"{tx.TransactionType}: {tx.Credits} credits\");\n}\n```\n\n### S3 Integration\n\n```csharp\nvar integrationsApi = new IntegrationsApi(config);\n\n// Save S3 configuration\nvar s3Config = new S3ConfigRequest(\n    endpointUrl: \"https://s3.amazonaws.com\",\n    accessKeyId: \"AKIAIOSFODNN7EXAMPLE\",\n    secretAccessKey: \"your-secret-key\",\n    bucketName: \"my-pdf-bucket\",\n    defaultPrefix: \"generated/pdfs/\"\n);\n\nawait integrationsApi.SaveS3ConfigAsync(s3Config);\n\n// Test connection\nvar test = await integrationsApi.TestS3ConnectionAsync();\nConsole.WriteLine($\"Connection: {(test.Success ? \"OK\" : \"Failed\")}\");\n```\n\n## Configuration\n\n```csharp\nvar config = new Configuration\n{\n    BasePath = \"https://api.templatefox.com\",  // Default API URL\n    ApiKey = new Dictionary\u003cstring, string\u003e\n    {\n        { \"x-api-key\", Environment.GetEnvironmentVariable(\"TEMPLATEFOX_API_KEY\") }\n    }\n};\n```\n\n## Error Handling\n\n```csharp\ntry\n{\n    var response = await api.CreatePdfAsync(request);\n}\ncatch (ApiException e)\n{\n    switch (e.ErrorCode)\n    {\n        case 402:\n            Console.WriteLine(\"Insufficient credits\");\n            break;\n        case 403:\n            Console.WriteLine(\"Access denied - check your API key\");\n            break;\n        case 404:\n            Console.WriteLine(\"Template not found\");\n            break;\n        default:\n            Console.WriteLine($\"Error: {e.Message}\");\n            break;\n    }\n}\n```\n\n## Dependency Injection (ASP.NET Core)\n\n```csharp\n// Program.cs or Startup.cs\nbuilder.Services.AddSingleton\u003cConfiguration\u003e(sp =\u003e\n{\n    return new Configuration\n    {\n        ApiKey = new Dictionary\u003cstring, string\u003e\n        {\n            { \"x-api-key\", builder.Configuration[\"TemplateFox:ApiKey\"] }\n        }\n    };\n});\n\nbuilder.Services.AddTransient\u003cPDFApi\u003e();\n\n// In your controller or service\npublic class PdfController : ControllerBase\n{\n    private readonly PDFApi _api;\n\n    public PdfController(PDFApi api)\n    {\n        _api = api;\n    }\n\n    public async Task\u003cIActionResult\u003e GenerateInvoice(InvoiceDto invoice)\n    {\n        var request = new CreatePdfRequest(\n            templateId: _configuration[\"TemplateFox:InvoiceTemplateId\"],\n            data: invoice.ToTemplateData()\n        );\n        var response = await _api.CreatePdfAsync(request);\n        return Ok(new { url = response.Url });\n    }\n}\n```\n\n## Documentation\n\n- [API Documentation](https://templatefox.com/docs)\n- [Swagger UI](https://api.templatefox.com/docs)\n- [Dashboard](https://templatefox.com/dashboard)\n\n## Support\n\n- Email: support@templatefox.com\n- Issues: [GitHub Issues](https://github.com/TemplateFoxPDF/csharpsdk/issues)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemplatefoxpdf%2Fcsharpsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemplatefoxpdf%2Fcsharpsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemplatefoxpdf%2Fcsharpsdk/lists"}