{"title":"Conas comhaid PDF a chruthú","version":"6.1","locale":"ga","docname":"howto/outputting-pdf","url":"/ga/6.1/howto/outputting-pdf/","canonical":"https://djangodocs.dev/ga/6.1/howto/outputting-pdf/","summary":"Míníonn an doiciméad seo conas comhaid PDF a aschur go dinimiciúil ag úsáid radhairc Django Is féidir é seo a dhéanamh leis an leabharlann PDF ReportLab Python…","html":"<h1>Conas comhaid PDF a chruthú<a class=\"heading-anchor\" href=\"#how-to-create-pdf-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Míníonn an doiciméad seo conas comhaid PDF a aschur go dinimiciúil ag úsáid radhairc Django Is féidir é seo a dhéanamh leis an leabharlann PDF <a class=\"reference external\" href=\"https://docs.reportlab.com/\">ReportLab</a> Python foinse oscailte den scoth.</p>\n<p>Is é an buntáiste a bhaineann le comhaid PDF a ghiniúint go dinimiciúil ná gur féidir leat PDFanna saincheaptha a chruthú chun críocha éagsúla -- abair, d'úsáideoirí éagsúla nó do phíosaí éagsúla ábhair.</p>\n<p>Mar shampla, úsáideadh Django ag <a class=\"reference external\" href=\"https://www2.kusports.com/\">kusports.com</a> chun lúibíní comórtais NCAA saincheaptha, atá cairdiúil don phriontáil a ghiniúint, mar chomhaid PDF, do dhaoine a ghlac páirt i gcomórtas March Madness.</p>\n<section id=\"install-reportlab\">\n<h2>Suiteáil ReportLab<a class=\"heading-anchor\" href=\"#install-reportlab\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>&lt;reportlab&gt;Is é leabharlann ReportLab: pypi: ar fáil ar PyPI `. Tá `treoir úsáideora `_ (ní comhtharlach, comhad PDF) ar fáil le híoslódáil freisin. Is féidir leat ReportLab a shuiteáil le ``pip`:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>reportlab\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m pip install reportlab\n</code></pre></div></div></div>\n<p>Tástáil do shuiteáil trína iompórtáil san ateangaire idirghníomhach Python:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">reportlab</span>\n</code></pre></div>\n<p>Mura n-ardaíonn an t-ordú sin aon earráidí, d'oibrigh an tsuiteáil.</p>\n</section>\n<section id=\"write-your-view\">\n<h2>Scríobh do thuairim<a class=\"heading-anchor\" href=\"#write-your-view\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Is é an eochair chun PDFanna a ghiniúint go dinimiciúil le Django ná go ngníomhaíonn an API ReportLab ar rudaí cosúil le comhad, agus glacann rudaí djangos:class: ~django.http.FileResponse le rudaí cosúil le comhad.</p>\n<p>Seo sampla “Hello World”:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">io</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">FileResponse</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">reportlab.pdfgen</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">canvas</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">some_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"c1\"># Create a file-like buffer to receive PDF data.</span>\n    <span class=\"n\">buffer</span> <span class=\"o\">=</span> <span class=\"n\">io</span><span class=\"o\">.</span><span class=\"n\">BytesIO</span><span class=\"p\">()</span>\n\n    <span class=\"c1\"># Create the PDF object, using the buffer as its &quot;file.&quot;</span>\n    <span class=\"n\">p</span> <span class=\"o\">=</span> <span class=\"n\">canvas</span><span class=\"o\">.</span><span class=\"n\">Canvas</span><span class=\"p\">(</span><span class=\"n\">buffer</span><span class=\"p\">)</span>\n\n    <span class=\"c1\"># Draw things on the PDF. Here&#39;s where the PDF generation happens.</span>\n    <span class=\"c1\"># See the ReportLab documentation for the full list of functionality.</span>\n    <span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">drawString</span><span class=\"p\">(</span><span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"mi\">100</span><span class=\"p\">,</span> <span class=\"s2\">&quot;Hello world.&quot;</span><span class=\"p\">)</span>\n\n    <span class=\"c1\"># Close the PDF object cleanly, and we&#39;re done.</span>\n    <span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">showPage</span><span class=\"p\">()</span>\n    <span class=\"n\">p</span><span class=\"o\">.</span><span class=\"n\">save</span><span class=\"p\">()</span>\n\n    <span class=\"c1\"># FileResponse sets the Content-Disposition header so that browsers</span>\n    <span class=\"c1\"># present the option to save the file.</span>\n    <span class=\"n\">buffer</span><span class=\"o\">.</span><span class=\"n\">seek</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">FileResponse</span><span class=\"p\">(</span><span class=\"n\">buffer</span><span class=\"p\">,</span> <span class=\"n\">as_attachment</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">filename</span><span class=\"o\">=</span><span class=\"s2\">&quot;hello.pdf&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Ba chóir go mbeadh an cód agus na tuairimí féinmhínithe, ach tá cúpla rud tuillte ag lua:</p>\n<ul class=\"simple\">\n<li><p>Socróidh an freagra an cineál MIME go huathoibríoch: mimetype: application/pdf bunaithe ar an síneadh ainm comhaid. Insíonn sé seo do bhrabhsálaithe gur comhad PDF é an doiciméad, seachas comhad HTML nó ábhar dénártha ginearic:mimetype: application/octet-stream.</p></li>\n<li><p>Nuair a chuirtear <code class=\"docutils literal notranslate\"><span class=\"pre\">as_attachment=True</span></code> chuig FileResponse`, socraíonn sé an ceannteideal <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Disposition</span></code> cuí agus insíonn sé do bhrabhsálaithe gréasáin bosca dialóige a chur in iúl agus ag dearbhú conas an doiciméad a láimhseáil fiú má shocraítear réamhshocrú ar an meaisín. Má fhágann an paraiméadar as_attachment, láimhseálfaidh brabhsálaithe an PDF ag baint úsáide as cibé clár/breiseán atá cumraithe acu le húsáid le haghaidh PDFanna.</p></li>\n<li><p>Is féidir leat paraiméadar treallach <code class=\"docutils literal notranslate\"><span class=\"pre\">file</span></code> a sholáthar. Úsáidfidh brabhsálaithe é sa dialóg “Sábháil mar...”.</p></li>\n<li><p>Is féidir leat dul isteach sa API ReportLab: Is féidir an maolán céanna a rith mar an chéad argóint chuig Canvas.canvas` a chothú chuig an aic:class: ~django.http.fileResponse.</p></li>\n<li><p>Tabhair faoi deara go ndéantar gach modh giniúna PDF ina dhiaidh sin ar an réad PDF (sa chás seo, p`) -- ní ar maolán `.</p></li>\n<li><p>Mar fhocal scoir, tá sé tábhachtach glaoch ar <code class=\"docutils literal notranslate\"><span class=\"pre\">Showpage</span> <span class=\"pre\">()</span> <span class=\"pre\">``agus</span> <span class=\"pre\">``save</span> <span class=\"pre\">()</span></code> ar an gcomhad PDF.</p></li>\n</ul>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>Níl ReportLab sábháilte le snáithe. Thuairiscigh cuid dár n-úsáideoirí saincheisteanna aisteacha maidir le tuairimí Django a ghineann PDF a thógáil ar rochtain ag go leor daoine ag an am céanna.</p>\n</aside>\n</section>\n<section id=\"other-formats\">\n<h2>Formáidí eile<a class=\"heading-anchor\" href=\"#other-formats\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tabhair faoi deara nach bhfuil go leor sna samplaí seo atá sainiúil le PDF - díreach na giotáin ag baint úsáide as reportlab. Is féidir leat teicníc den chineál céanna a úsáid chun aon fhormáid treallach a ghiniúint ar féidir leat leabharlann Python a fháil dó. Féach freisin: doc: /howto/outputting-csv le haghaidh sampla eile agus roinnt teicnící is féidir leat a úsáid nuair a ghintear formáidí téacs-bhunaithe.</p>\n<aside class=\"admonition admonition-seealso\">\n<p class=\"admonition-title\">See also</p>\n<p>Soláthraíonn Pacáistí Django <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>comparáid ar phacáistí <a href=\"#id3\"><span class=\"problematic\" id=\"id4\">`</span></a>_ a chabhraíonn le comhaid PDF a ghiniúint &lt; <a class=\"reference external\" href=\"https://djangopackages.org/grids/g/pdf/\">https://djangopackages.org/grids/g/pdf/</a>&gt; ó Django.</p>\n</aside>\n</section>","rootId":"how-to-create-pdf-files","toc":[{"title":"Suiteáil ReportLab","anchor":"install-reportlab","children":[]},{"title":"Scríobh do thuairim","anchor":"write-your-view","children":[]},{"title":"Formáidí eile","anchor":"other-formats","children":[]}],"breadcrumbs":[{"docname":"howto/index","title":"Treoracha conas","url":"/ga/6.1/howto/"}],"prev":{"docname":"howto/outputting-csv","title":"Conas aschur CSV a chruthú","url":"/ga/6.1/howto/outputting-csv/"},"next":{"docname":"howto/overriding-templates","title":"Conas teimpléid a shárú","url":"/ga/6.1/howto/overriding-templates/"},"formats":{"html":"/ga/6.1/howto/outputting-pdf/","markdown":"/ga/6.1/howto/outputting-pdf.md","json":"/ga/6.1/howto/outputting-pdf.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/howto/outputting-pdf.txt","official":"https://docs.djangoproject.com/ga/6.1/howto/outputting-pdf/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}