[{"data":1,"prerenderedAt":141},["Reactive",2],{"/guides/csharp/httpwebrequest/adding-a-text-watermark":3,"/guides/csharp/httpwebrequest/adding-a-text-watermark-related":59},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"language":10,"library":11,"property":12,"output":13,"related":14,"default":6,"body":17,"_type":54,"_id":55,"_source":56,"_file":57,"_extension":58},"/guides/csharp/httpwebrequest/adding-a-text-watermark","httpwebrequest",false,"","Adding a text watermark","Learn how to add text watermarks to your PDFs using C# and the HTTPWebRequest library. This guide offers detailed steps with code samples in C# and the HTTPWebRequest library, showing how to apply text watermarks to protect your documents.","C#","HTTPWebRequest","watermark","pdf",[15,16],"adding-an-image-watermark","protecting-the-generated-pdf",{"type":18,"children":19,"toc":51},"root",[20,28,33,46],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25],{"type":26,"value":27},"text","In this guide, we'll show you how to add text watermarks to your PDFs using C# and the HTTPWebRequest library.",{"type":21,"tag":22,"props":29,"children":30},{},[31],{"type":26,"value":32},"When generating PDFs, you might want to add text watermarks to your documents for protection or branding purposes.",{"type":21,"tag":34,"props":35,"children":40},"pre",{"className":36,"code":38,"language":39,"meta":7},[37],"language-csharp","using System;\nusing System.Net;\nusing System.Text;\nusing System.IO;\nusing System.Threading.Tasks;\n\n// You can get an API key at https://pdfshift.io\nvar apiKey = \"sk_xxxxxxxxxxxx\";\n\nvar request = (HttpWebRequest)WebRequest.Create(\"https://api.pdfshift.io/v3/convert/pdf\");\nrequest.Method = \"POST\";\nrequest.ContentType = \"application/json\";\nrequest.Headers.Add(\"X-API-Key\", apiKey);\n\nvar payload = new\n{\n    source = \"https://www.example.com\",\n    // Add text watermark\n    watermark = new\n    {\n        text = \"CONFIDENTIAL\",\n        opacity = 0.3,\n        size = \"20px\",\n        color = \"#000000\"\n    }\n};\n\nvar json = System.Text.Json.JsonSerializer.Serialize(payload);\nbyte[] data = Encoding.UTF8.GetBytes(json);\nrequest.ContentLength = data.Length;\n\nusing (var stream = request.GetRequestStream())\n{\n    stream.Write(data, 0, data.Length);\n}\n\ntry\n{\n    var response = (HttpWebResponse)request.GetResponse();\n    \n    // Handle errors:\n    if (response.StatusCode >= HttpStatusCode.BadRequest)\n    {\n        throw new Exception($\"Request failed with status code {response.StatusCode}\");\n    }\n\n    using (var reader = new StreamReader(response.GetResponseStream()))\n    {\n        var result = reader.ReadToEnd();\n        File.WriteAllText(\"result.pdf\", result);\n    }\n\n    Console.WriteLine(\"The PDF document was generated and saved to result.pdf\");\n}\ncatch (WebException ex)\n{\n    Console.WriteLine($\"Error: {ex.Message}\");\n}\n","csharp",[41],{"type":21,"tag":42,"props":43,"children":44},"code",{"__ignoreMap":7},[45],{"type":26,"value":38},{"type":21,"tag":22,"props":47,"children":48},{},[49],{"type":26,"value":50},"This allows you to add textual protection to your documents with customizable text.",{"title":7,"searchDepth":52,"depth":52,"links":53},2,[],"markdown","content:guides:csharp:httpwebrequest:adding-a-text-watermark.md","content","guides/csharp/httpwebrequest/adding-a-text-watermark.md","md",[60,64,68,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137],{"_path":61,"title":62,"language":10,"library":11,"_id":63},"/guides/csharp/httpwebrequest/accessing-secured-pages","Accessing secured pages","content:guides:csharp:httpwebrequest:accessing-secured-pages.md",{"_path":65,"title":66,"language":10,"library":11,"_id":67},"/guides/csharp/httpwebrequest/adding-a-custom-header-or-footer","Adding a custom header or footer","content:guides:csharp:httpwebrequest:adding-a-custom-header-or-footer.md",{"_path":4,"title":8,"language":10,"library":11,"_id":55},{"_path":70,"title":71,"language":10,"library":11,"_id":72},"/guides/csharp/httpwebrequest/adding-an-image-watermark","Adding an image watermark","content:guides:csharp:httpwebrequest:adding-an-image-watermark.md",{"_path":74,"title":75,"language":10,"library":11,"_id":76},"/guides/csharp/httpwebrequest/avoid-conversion-on-error","Avoid conversion on error","content:guides:csharp:httpwebrequest:avoid-conversion-on-error.md",{"_path":78,"title":79,"language":10,"library":11,"_id":80},"/guides/csharp/httpwebrequest/convert-html-to-pdf-from-a-url","Convert HTML to PDF from a URL","content:guides:csharp:httpwebrequest:convert-html-to-pdf-from-a-url.md",{"_path":82,"title":83,"language":10,"library":11,"_id":84},"/guides/csharp/httpwebrequest/convert-html-to-pdf-from-raw-html","Convert HTML to PDF from raw HTML","content:guides:csharp:httpwebrequest:convert-html-to-pdf-from-raw-html.md",{"_path":86,"title":87,"language":10,"library":11,"_id":88},"/guides/csharp/httpwebrequest/define-a-time-limit","Define a time limit","content:guides:csharp:httpwebrequest:define-a-time-limit.md",{"_path":90,"title":91,"language":10,"library":11,"_id":92},"/guides/csharp/httpwebrequest/exporting-only-a-specific-set-of-pages","Exporting only a specific set of pages","content:guides:csharp:httpwebrequest:exporting-only-a-specific-set-of-pages.md",{"_path":94,"title":95,"language":10,"library":11,"_id":96},"/guides/csharp/httpwebrequest/generate-a-document-with-full-height","Generate a document with full height","content:guides:csharp:httpwebrequest:generate-a-document-with-full-height.md",{"_path":98,"title":99,"language":10,"library":11,"_id":100},"/guides/csharp/httpwebrequest/loading-css-from-a-string","Loading CSS from a string","content:guides:csharp:httpwebrequest:loading-css-from-a-string.md",{"_path":102,"title":103,"language":10,"library":11,"_id":104},"/guides/csharp/httpwebrequest/loading-css-from-a-url","Loading CSS from a URL","content:guides:csharp:httpwebrequest:loading-css-from-a-url.md",{"_path":106,"title":107,"language":10,"library":11,"_id":108},"/guides/csharp/httpwebrequest/loading-javascript-from-a-string","Loading JavaScript from a string","content:guides:csharp:httpwebrequest:loading-javascript-from-a-string.md",{"_path":110,"title":111,"language":10,"library":11,"_id":112},"/guides/csharp/httpwebrequest/loading-javascript-from-a-url","Loading JavaScript from a URL","content:guides:csharp:httpwebrequest:loading-javascript-from-a-url.md",{"_path":114,"title":115,"language":10,"library":11,"_id":116},"/guides/csharp/httpwebrequest/protecting-the-generated-pdf","Protecting the generated PDF","content:guides:csharp:httpwebrequest:protecting-the-generated-pdf.md",{"_path":118,"title":119,"language":10,"library":11,"_id":120},"/guides/csharp/httpwebrequest/receive-a-webhook-event","Receive a webhook event","content:guides:csharp:httpwebrequest:receive-a-webhook-event.md",{"_path":122,"title":123,"language":10,"library":11,"_id":124},"/guides/csharp/httpwebrequest/save-your-pdf-online-and-get-back-a-url","Save your PDF online and get back a URL","content:guides:csharp:httpwebrequest:save-your-pdf-online-and-get-back-a-url.md",{"_path":126,"title":127,"language":10,"library":11,"_id":128},"/guides/csharp/httpwebrequest/save-your-pdf-to-your-amazon-s3-bucket","Save your PDF to your Amazon S3 bucket","content:guides:csharp:httpwebrequest:save-your-pdf-to-your-amazon-s3-bucket.md",{"_path":130,"title":131,"language":10,"library":11,"_id":132},"/guides/csharp/httpwebrequest/send-custom-http-headers","Send custom HTTP headers","content:guides:csharp:httpwebrequest:send-custom-http-headers.md",{"_path":134,"title":135,"language":10,"library":11,"_id":136},"/guides/csharp/httpwebrequest/using-cookies","Using cookies","content:guides:csharp:httpwebrequest:using-cookies.md",{"_path":138,"title":139,"language":10,"library":11,"_id":140},"/guides/csharp/httpwebrequest/waiting-for-a-custom-element-to-be-ready","Waiting for a custom element to be ready","content:guides:csharp:httpwebrequest:waiting-for-a-custom-element-to-be-ready.md",1780405103762]