Представьте HTML как изображение

Я думаю, что nargs здесь не тот инструмент. Вместо этого вам нужно дополнительно обработать аргумент для получения правильного хоста и папки. Вы можете установить пользовательскую функцию с помощью аргумента type:

import argparse

def host_and_folder(arg):
    try:
        host, folder = arg.split(":")
    except ValueError:
        raise argparse.ArgumentError(None, "Source and Destination details must be in the format host_name:folder_name")
    if not folder:
        folder = "."
    return host, folder

my_parser = argparse.ArgumentParser(description='To sync files between source and destination')
my_parser.add_argument('-s',"--source", help='Enter the source server detail and source folder name', required=True, type=host_and_folder)
my_parser.add_argument('-d', '--destination', help="Enter the destination server detail", required=True, type=host_and_folder)

clarg = my_parser.parse_args()

В качестве альтернативы вы также можете указать пользовательское действие и отдельно установить host и folder в качестве атрибутов source и destination. :

class HostAndFolderAction(argparse.Action):
    def __call__(self, parser, namespace, values, option_string=None):
        try:
           host, folder = values.split(":")
        except ValueError as e:
           parser.error(f"{self.dest.title()} details must be in the format host_name:folder_name")
        setattr(namespace, self.dest, argparse.Namespace(host=host, folder=folder or "."))

my_parser = argparse.ArgumentParser(description='To sync files between source and destination')
my_parser.add_argument('-s',"--source", help='Enter the source server detail and source folder name', required=True, action=HostAndFolderAction, metavar='SOURCE_HOST:[DIRECTORY]')
my_parser.add_argument('-d', '--destination', help="Enter the destination server detail", required=True, action=HostAndFolderAction, metavar='DESTINATION_HOST:[DIRECTORY]')

clarg = my_parser.parse_args(["-s", "foo:temp", "-d", "bar:"])
print(clarg.source.host)
# foo
print(clarg.destination.folder)
# .

clarg = my_parser.parse_args(["-s", "foo:temp", "-d", "bar"])
# usage: ipython3 [-h] -s SOURCE_HOST:[DIRECTORY] -d DESTINATION_HOST:[DIRECTORY]
# error: Destination details must be in the format host_name:folder_name
11
задан Tablet 2 December 2008 в 16:38
поделиться

8 ответов

То, что можно сделать, создают aspx страницу, которая изменяет тип ответа, чтобы быть в формате, Вы хотите и затем помещаете изображение в поток. Я создал генератор штрихкода, который делает подобную вещь. Исключая все формальности генерации изображения Вы будете Page_Load выглядеть примерно так:

Bitmap FinalBitmap = new Bitmap();
MemoryStream msStream = new MemoryStream();

strInputParameter == Request.Params("MagicParm").ToString()

// Magic code goes here to generate your bitmap image.
FinalBitmap.Save(msStream, ImageFormat.Png);

Response.Clear();
Response.ContentType = "image/png";

msStream.WriteTo(Response.OutputStream);

if ((FinalBitmap != null)) FinalBitmap.Dispose();

и вот именно! Затем все, что необходимо сделать в изображении, установлено URL, чтобы быть чем-то как RenderImage.aspx? MagicParm=WooHoo или независимо от того, что Вам нужно. Тем путем у Вас может быть он, представляют то, что Вы хотите указать.

11
ответ дан 3 December 2019 в 05:59
поделиться

Можно представить HTML к битовому массиву с помощью управления WebBrowser или в winforms или в консольном приложении.

Пример этого может быть найден здесь: http://www.wincustomize.com/articles.aspx?aid=136426&c=1

Вышеупомянутый пример может быть изменен для выполнения в ASP.NET путем создания нового STAThread и выполнения Приложения. Работайте на нем для запуска нового цикла сообщения.

4
ответ дан 3 December 2019 в 05:59
поделиться

Попробуйте PDFSharp... это не точно, "берут этот HTML и делают PDF", но с маленьким amout игры Вас может легко сделать PDF из информации, которую Вы используете для создания HTML.

1
ответ дан 3 December 2019 в 05:59
поделиться

Существует очень мощная библиотека создания изображений под названием GD, который я часто использую с PHP.

Я ведусь полагать, что существует обертка для этой библиотеки, которой могут пользоваться ASP-программисты. Попробуйте это

0
ответ дан 3 December 2019 в 05:59
поделиться

Если "другие проблемы" не довольно серьезны, Вы не могли только дать своим пользователям команду включать Фоновые изображения при печати?

В любом случае я принял бы значение по умолчанию к обслуживанию PDF, а не изображения, вдвойне поэтому, так как оно предназначается для печати.

0
ответ дан 3 December 2019 в 05:59
поделиться

Альтернатива PHP / Ruby


Если вы ответили на этот вопрос и действительно ищете решение, которое будет работать без Windows, вы можете попробовать библиотеку KHTML: http://wiki.goatpr0n.de/projects / khtmld

Я признаю, что у этого веб-сайта смешное название, но я могу вас уверить, что оно подлинное. Другие связанные страницы: страница sourceforge http://khtml2png.sourceforge.net/

3
ответ дан 3 December 2019 в 05:59
поделиться

Просто настройте CSS правильно, чтобы у вас был файл CSS, предназначенный для печатного носителя. Довольно легко гарантировать, что купон всегда будет разборчивым, не беспокоясь о том, есть ли на нем изображения bg или нет. Переход к изображению не имеет никакого смысла, если только по какой-то причине вы не хотите, чтобы оно было машиночитаемым.

0
ответ дан 3 December 2019 в 05:59
поделиться

Я сам не пробовал, но у вас должна быть возможность преобразовать HTML в изображение с помощью элемента управления WebBrowser и метода DrawToBitmap (), унаследованного от базового класса Control.

ОБНОВЛЕНИЕ: я пробовал это сам, и есть некоторые предостережения. Кажется, что элемент управления WebBrowser не отображает веб-страницу до тех пор, пока этот элемент управления не отображается, поэтому WebBrowser должен быть в форме, а форма должна отображаться для отображения HTML и возникновения события DocumentCompleted.

0
ответ дан 3 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: