discord.py - отправка виртуального PDF-файла - PullRequest
0 голосов
/ 27 мая 2020

Есть ли способ загрузить виртуальный файл PDF в Discord (я не хочу, чтобы файлы создавались на моем компьютере). Я уже знаю, что могу отправлять виртуальные txt файлы с io.StringIO следующим образом:

import discord, asyncio
from discord.ext import commands
from io import StringIO

bot = commands.Bot()

@bot.command()
async def send(ctx, *, string):
    await ctx.send(file=discord.File(
        fp=StringIO("This is a test"),
        filename="Test.txt"
    )

Но это не работает с файлами PDF. Я попытался использовать вместо него io.BytesIO, но безрезультатно. Кто-нибудь знает как решить эту проблему?

1 Ответ

2 голосов
/ 27 мая 2020

Вот пример использования FPDF :

import discord
from discord.ext import commands
from io import BytesIO
from fpdf import FPDF

bot = commands.Bot("!")

@bot.command()
async def pdf(ctx, *, text):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font('Arial', 'B', 16)
    pdf.cell(40, 10, text)
    bstring = pdf.output(dest='S').encode('latin-1')
    await ctx.send(file=discord.File(BytesIO(bstring), filename='pdf.pdf'))

bot.run("token")
...