掌桥专利:专业的专利平台
掌桥专利
首页

文档转换方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:59:31


文档转换方法、装置、电子设备和存储介质

技术领域

本发明涉及文档处理技术领域,尤其涉及一种文档转换方法、装置、电子设备和存储介质。

背景技术

在软件开发过程中,需求分析、设计和编程等不同阶段都需要生成文档作为下一阶段工作的输入。目前,一般使用WPS、Microsoft Word、TeX类、Typst等工具来组织文档内容,或者使用Typora、MarkdownPad等Markdown编辑器实现对Markdown文档的格式转换和导出。

然而,使用WPS和Microsoft Word生成的文档难以通过版本管理工具来追踪文档的变更点,不利于团队协作和文档管理;而TeX类和Typst等工具通过命令来控制文档排版,不仅要搭建编译环境,而且需要学习相关命令,学习难度大。此外,虽然现有的大多数集成开发环境能够支持编辑Markdown文档,但无法直接对Markdown文档进行格式转换并导出,需要借助第三方文档转换工具,如Typora、MarkdownPad等来实现,导致了额外的操作步骤,操作繁琐不便,并且导出文档时样式受限,无法满足用户需求。

发明内容

本发明提供一种文档转换方法、装置、电子设备和存储介质,用以解决现有技术中文档变更点难以追踪、文档转换操作繁琐的缺陷。

本发明提供一种文档转换方法,包括:

获取待转换文档,所述待转换文档为Markdown文档;

对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;

对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;

基于所述文档属性和所述文档内容,生成目标文档。

根据本发明提供的一种文档转换方法,所述对所述待解析文档内容进行解析,得到文档属性和文档内容,包括:

在所述待解析文档内容中查找预设文件头标记,所述预设文件头标记包括预设开始标记和预设结束标记;

在查找到所述预设文件头标记的情况下,将所述预设开始标记和所述预设结束标记之间的所述待解析文档内容作为所述文件头,并将所述预设结束标记之后的所述待解析文档内容作为所述正文内容;

对所述文件头进行解析,得到所述文档属性;

对所述正文内容进行解析,得到所述文档内容。

根据本发明提供的一种文档转换方法,所述在所述待解析文档内容中查找预设文件头标记,之后还包括:

在未查找到所述预设文件头标记的情况下,将所述待解析文档内容作为所述正文内容,并对所述正文内容进行解析,得到所述文档内容;

获取所述预设文档属性,并将所述预设文档属性作为所述文档属性。

根据本发明提供的一种文档转换方法,所述对所述文件头进行解析,得到所述文档属性,包括:

对所述文件头进行解析,得到初始文档属性;

接收文档属性设置操作;

响应于所述文档属性设置操作,对所述初始文档属性进行更新,得到所述文档属性。

根据本发明提供的一种文档转换方法,所述对所述正文内容进行解析,得到所述文档内容,包括:

将所述正文内容与预设正文标记进行匹配,并基于匹配得到的所述正文内容,确定各文档元素;所述预设正文标记包括标题标记、段落标记、列表标记、引用标记、代码标记、图片或链接标记、表格标记中的至少一种;

基于所述各文档元素,确定所述文档内容。

根据本发明提供的一种文档转换方法,所述基于所述文档属性和所述文档内容,生成目标文档,包括:

基于所述文档属性,确定文档格式和文档样式;

基于所述文档格式和所述文档样式,对所述文档内容中的各文档元素进行排版,生成所述目标文档。

根据本发明提供的一种文档转换方法,所述基于所述文档属性和所述文档内容,生成目标文档,之后还包括:

基于文档导出属性,对所述目标文档进行导出,所述文档导出属性基于预设导出属性和/或用户输入确定。

本发明还提供一种文档转换装置,包括:

获取单元,用于获取待转换文档,所述待转换文档为Markdown文档;

读取单元,用于对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;

解析单元,用于对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;

生成单元,用于基于所述文档属性和所述文档内容,生成目标文档。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述文档转换方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述文档转换方法。

本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述文档转换方法。

本发明提供的文档转换方法、装置、电子设备和存储介质,通过对Markdown文档进行逐行读取并转换为字符串,可以得到待解析文档内容,并将待解析文档内容拆分为文件头和正文内容,以便分别对其进行解析,得到文档属性和文档内容,由此可以基于文档属性和文档内容,生成得到目标文档,从而实现了将Markdown文档转换为目标文档,无需借助第三方文档转换工具,减少了软件切换,提升了开发效率,并且无需学习排版相关的命令,降低了学习成本,能够更方便地进行版本管理和轻量化操作。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的文档转换方法的流程示意图之一;

图2是本发明提供的文档转换方法中步骤130的流程示意图;

图3是本发明提供的文档转换方法中步骤133的流程示意图;

图4是本发明提供的文档转换方法中步骤134的流程示意图;

图5是本发明提供的文档转换方法的流程示意图之二;

图6是本发明提供的文档转换装置的结构示意图;

图7是本发明提供的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在软件开发过程中,各个阶段(如需求分析、设计、编程等)都需要生成文档作为下一阶段工作的输入。目前,一般使用WPS、Microsoft Word、TeX类、Typst等工具来组织文档内容。WPS和Microsoft Word是目前使用最多的两个文字处理软件,然而,软件开发大多使用版本管理工具(如Git)来进行版本管理,而使用WPS、Microsoft Word等工具组织文档内容时难以通过Git工具来追踪文档的变更点,不利于团队协作和文档管理。而TeX类和Typst等工具通过命令来控制文档排版,虽然可以使用Git工具进行版本管理,但TeX类和Typst需要使用专门的编译工具才能输出文档,不仅要搭建编译环境,而且需要学习相关命令,学习难度大,增大了使用者的负担。

Markdown是一种语法简单的轻量级标记语言,它使用一些简单的符号来标记文本格式,因其简洁的语法、格式以及强大的软件支持而深受喜爱。与使用WPS、Microsoft Word等文档组织工具相比,使用Markdown文档可以通过版本管理工具来追踪文档的变更,便于及时将程序开发情况同步到文档中。目前,较为常用的是使用Typora、MarkdownPad等Markdown编辑器把Markdown文档导出为PDF,或者使用Pandoc实现Markdown文档的格式转换。

然而,上述文档转换工具都存在一定的缺陷。对开发人员而言,目前大多数集成开发环境已支持编辑Markdown文档,但无法直接对Markdown文档进行格式转换并导出,需要借助第三方文档转换工具,如Typora、MarkdownPad、Pandoc等来实现,导致了额外的操作步骤,操作繁琐不便。此外,现有的文档转换工具在导出文档时样式受限,并不能满足用户需求,实际使用时也不够轻量化,随着Markdown文档内容增加,现有的文档转换工具由于渲染能力有限,可能导致卡住不能运行,且需要付出一定量的学习成本。

对此,本发明实施例提供一种文档转换方法,与使用现有的文档转换工具来转换Markdown文档相比,本发明可以直接通过集成开发环境内置的编辑器实现对Markdown文档的编辑和转换,无需借助第三方文档转换工具,减少了软件切换,提升了开发效率,能够更方便地进行版本管理、轻量化操作;与使用命令控制文档排版的工具相比,无需学习排版所用的相关命令,降低了学习成本,从而克服上述缺陷。

图1是本发明提供的文档转换方法的流程示意图之一,如图1所示,该方法包括:

步骤110,获取待转换文档,所述待转换文档为Markdown文档;

具体地,待转换文档是指需要进行转换的文档,此处,待转换文档可以为Markdown文档,即文档后缀为.md的文档。待转换文档的获取方法可以根据实际需求进行多样化的设置,例如,可以通过弹出选择框的方式,选择待转换的Markdown文档,也可以将待转换文档存储在本地文件夹中,通过指定待转换文档的文件路径进行获取,本发明实施例对此不作具体限定。

步骤120,对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;

具体地,在获取到待转换文档后,可以对待转换文档的内容进行逐行读取并将其转换为字符串,例如,可以使用Java的文件读取操作功能和字符串处理方法来实现,逐行读取待转换文档的内容,并以字符串的形式存储起来,以得到待解析文档内容,便于后续逐行处理待转换文档的内容。此处,待解析文档内容是指已经转换为字符串形式的待转换文档的内容,它是一个包含整个文档内容的字符串,可以对该字符串进行进一步的解析和处理。

步骤130,对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;

具体地,在得到待解析文档内容后,可以采用一定的规则或算法来对待解析文档内容进行解析,例如,可以根据Markdown文档的语法规则,使用Java和正则表达式对待解析文档内容进行解析,从而提取得到文档属性和文档内容。

Markdown文档可以包括文件头和正文内容,其中,文件头是指Markdown文档正文前用来定义文档的属性和元数据的部分,其通常使用YAML或JSON格式定义属性;正文内容是指Markdown文档中文件头之后的部分,即去除了文件头后剩余的内容,例如,正文内容可以包括标题、段落、列表、图片、表格等。在对待解析文档进行解析之前,可以将其拆分为文件头和正文内容,以便分别对文件头和正文内容进行解析,从而得到文档属性和文档内容。通过将待解析文档拆分为文件头和正文内容,可以更好地组织和处理文档的属性和内容,文件头通常用于存储文档的元数据和配置信息,而正文内容则是文档的实际内容,通过拆分,可以更方便地对文档的属性和内容进行独立的处理和操作,提高代码的可读性和可维护性。

文档属性是指文档的元数据信息,例如,文档属性可以包括作者、创建时间、编辑时间、文档格式(如pdf、word)、文档样式(如页眉、页脚、页边距等页面格式)等。在基于待解析文档内容的文件头确定文档属性时,可以通过使用YAML或JSON解析器来解析文件头中的内容以获取属性信息,解析后的属性可以存储到文档属性对象中,以便后续使用。

可以理解的是,文件头是Markdown文档中的可选部分,即Markdown文档中可以没有文件头,在此情况下,可以基于预设文档属性来确定文档属性。此处,预设文档属性是指预先设定的一些属性,可以作为文档属性的默认值或初始值。此外,在Markdown文档中存在文件头的情况下,如果文件头中没有指定某个属性,也可以使用预设文档属性作为默认值。需要说明的是,预设文档属性可以在代码中提前设定,也可以从配置文件中读取,本发明实施例对此不作具体限定。

进一步地,本发明实施例还可以支持用户根据需要设置文档属性,例如可以设置页面格式、正文字体、水印等。在基于文件头、预设文档属性来确定文档属性的基础上,还可以通过用户在输入时提供的信息来确定文档属性。用户输入是指用户提供的一些输入数据,例如接口输入、表单输入、命令行参数等,本发明实施例对此不作具体限定。本发明实施例中,通过基于待解析文档内容的文件头、预设文档属性和用户输入来确定文档属性,可以适应不同的场景和需求,具有灵活性、可扩展性、容错性和用户定制化的优点。

文档内容是指文档的实际内容,通常是文本、图片、表格等形式的数据。文档内容是写作、传达信息的核心部分,在解析过程中,识别和提取正文内容可以帮助理解和处理文档的实际内容。在对待解析文档的正文内容进行解析时,可以基于Markdown文档的语法规则,采用Java和正则表达式对正文内容进行解析和处理,从而提取得到文档内容。

步骤140,基于所述文档属性和所述文档内容,生成目标文档。

具体地,在对待解析文档内容进行解析,得到文档属性和文档内容后,可以基于文档属性,对文档内容进行格式化,从而得到目标文档。此处,目标文档是指最终生成的、包含了文档属性和内容的完整文档,它是基于原始文档中的属性和内容进行处理和组合生成的。目标文档可以是word格式的文档,也可以是pdf格式的文档,生成的目标文档可以进行导出、展示、分享、存档或其他用途等,本发明实施例对此不作具体限定。

本发明实施例提供的方法,通过对Markdown文档进行逐行读取并转换为字符串,可以得到待解析文档内容,并将待解析文档内容拆分为文件头和正文内容,以便分别对其进行解析,得到文档属性和文档内容,由此可以基于文档属性和文档内容,生成得到目标文档,从而实现了将Markdown文档转换为目标文档,无需借助第三方文档转换工具,减少了软件切换,提升了开发效率,并且无需学习排版相关的命令,降低了学习成本,能够更方便地进行版本管理和轻量化操作。

基于上述实施例,图2是本发明提供的文档转换方法中步骤130的流程示意图,如图2所示,步骤130具体包括:

步骤131,在所述待解析文档内容中查找预设文件头标记,所述预设文件头标记包括预设开始标记和预设结束标记;

具体地,预设文件头标记是指基于Markdown文档的语法规则所预先设定的用于标识文件头的特定标记,它包括预设开始标记和预设结束标记。此处,预设开始标记可以是一个特定的字符串或符号,用于标识文件头的起始位置;预设结束标记也可以是一个特定的字符串或符号,用于标识文件头的结束位置。文件头的开始和结束位置可以由一对特定的标记来标识,例如,预设开始标记和预设结束标记可以均为“---”,也可以均为“+++”。

在查找预设文件头标记时,可以从待解析文档内容中顺序查找预设开始标记和预设结束标记,例如,可以使用字符串匹配、正则表达式等方法进行查找。

步骤132,在查找到所述预设文件头标记的情况下,将所述预设开始标记和所述预设结束标记之间的所述待解析文档内容作为所述文件头,并将所述预设结束标记之后的所述待解析文档内容作为所述正文内容;

需要说明的是,Markdown文档的内容可以包括文件头和正文内容,文件头是正文前的部分,正文内容在文件头之后,文件头和正文内容之间通常通过一个或多个换行符进行分隔。因此,可以通过预设文件头标记将待解析文档内容拆分为文件头和正文内容,从而可以分别对其进行解析,以得到文档属性和文档内容。

具体地,在得到待解析文档内容后,可以基于待解析文档内容的先后顺序,通过预设文件头标记进行匹配,以确定文件头的开始和结束位置。如果查找到预设开始标记,表明定位到了文件头的起始位置,此时可以将预设开始标记后的文档内容存储到一个新的字符串中,继续查找,并对该字符串的内容进行更新,直至找到预设结束标记为止。

在查找到预设结束标记后,上述更新得到的字符串的内容,即为待解析文档内容的文件头,也就是预设开始标记和预设结束标记之间的待解析文档内容。而预设结束标记之后的所有内容,即可确定为待解析文档内容的正文内容。

步骤133,对所述文件头进行解析,得到所述文档属性;

步骤134,对所述正文内容进行解析,得到所述文档内容。

具体地,在拆分得到文件头和正文内容后,可以使用YAML或JSON解析器来解析文件头中的内容以获取属性信息,从而得到文档属性。对于正文内容,可以基于Markdown文档的语法规则,采用Java和正则表达式对正文内容进行解析和处理,从而提取得到文档内容。

本发明实施例提供的方法,通过查找预设文件头标记,可以准确地定位文件头和正文内容的边界,将待解析文档内容拆分为文件头和正文内容两部分,从而可以方便地对文件头和正文内容进行单独的处理,提高文档解析的准确性。

基于上述实施例,步骤131之后,该方法还包括:

在未查找到所述预设文件头标记的情况下,将所述待解析文档内容作为所述正文内容,并对所述正文内容进行解析,得到所述文档内容;

获取所述预设文档属性,并将所述预设文档属性作为所述文档属性。

具体地,在未查找到预设文件头标记的情况下,表明在待解析文档内容中没有定位到文件头的开始和结束位置,即待解析文档内容中不包括文件头部分,此时,可以将整个待解析文档内容作为正文内容,并对此进行解析,以得到文档内容。

在未查找到预设文件头标记的情况下,无法基于文件头解析得到文档属性,此时可以通过内置的预设文档属性来确定文档属性。例如,可以在解析程序中设置一组默认的预设文档属性,当解析过程中未找到对应的属性时,即可使用默认值。此外,即使是在查找到预设文件头标记的情况下,如果文件头中没有指定某个属性,也可以使用预设文档属性中相应的属性作为默认值。

本发明实施例提供的方法,通过内置预设文档属性,可以对目标文档的文档属性进行补充或扩展,从而可以避免因缺少必要属性而导致目标文档生成出错。此外,对于一些特定属性,可以将其设置为预设文档属性,无需用户在Markdown文档的文件头中进行设置,也无需用户频繁输入设置,大大提高了用户的使用体验。

基于上述任一实施例,图3是本发明提供的文档转换方法中步骤133的流程示意图,如图3所示,步骤133具体包括:

步骤1331,对所述文件头进行解析,得到初始文档属性;

步骤1332,接收文档属性设置操作;

步骤1333,响应于所述文档属性设置操作,对所述初始文档属性进行更新,得到所述文档属性。

具体地,对文件头进行解析可以根据文件头的具体格式和语法规则进行相应的处理,例如,可以使用YAML或JSON解析器来解析文件头,将文件头内容解析为一组键值对或属性-值对的形式,其中键表示属性名称,值表示属性的值,从而得到初始文档属性。此处,初始文档属性是指在解析文件头时得到的原始属性值,即文件头中包含的属性和对应的初始值。这些初始属性值可以是预设的默认值,也可以是从文件头中解析得到的实际值。

文档属性设置操作是指对文档属性进行自定义设置的操作。它可以包括添加属性、删除属性、修改属性等操作。接收文档属性设置操作可以通过用户界面、命令行参数、API(Application Programming Interface,应用程序编程接口)调用等方式进行。例如,在生成目标文档之前,可以提供一定数量的接口,用户可以根据需要对文档属性进行自定义设置,从而实现文档样式的轻量化定制,如设置页面格式、设置正文字体、设置水印等。

在接收到用户的文档属性设置操作后,可以根据设置操作中的指令,对初始文档属性进行相应的调整和更新。例如,如果设置操作是添加属性,则将新的属性添加到初始文档属性中;如果设置操作是修改属性,则更新对应属性的值,从而得到最终的文档属性。

本发明实施例提供的方法,可以根据用户的具体需求和喜好来确定文档属性,以定制化地生成目标文档,从而满足用户对文档样式的特定需求。

基于上述任一实施例,图4是本发明提供的文档转换方法中步骤134的流程示意图,如图4所示,步骤134具体包括:

步骤1341,将所述正文内容与预设正文标记进行匹配,并基于匹配得到的所述正文内容,确定各文档元素;所述预设正文标记包括标题标记、段落标记、列表标记、引用标记、代码标记、图片或链接标记、表格标记中的至少一种;

步骤1342,基于所述各文档元素,确定所述文档内容。

具体地,预设正文标记是指基于Markdown文档的语法规则所预先设定的用于标识不同类型文档元素的特定标记。它可以包括标题标记、段落标记、列表标记、引用标记、代码标记、图片或链接标记、表格标记等。

在对待解析文档内容的正文内容进行解析时,可以通过字符串匹配、正则表达式等方法将正文内容与预设正文标记进行匹配,通过逐个匹配各预设正文标记,并根据匹配结果即可确定正文内容中各个文档元素的位置和内容。此处,各文档元素是指文档中的不同类型的结构化内容,例如标题、段落、列表项、引用块、代码块、图片、链接、表格等。

标题用于标识文档的主题或章节,在Markdown中,标题通常使用#来表示,其中一个#表示一级标题,两个#表示二级标题,以此类推。在将正文内容与标题标记进行匹配时,对于以#开头的行,可以判断其开头的#标记的数量,并根据数量的不同确定标题的级别,从而解析得到文档内容的标题。

段落是文档中的文字内容,Markdown中的段落是由一行或多行文本组成,行与行之间通过换行符进行分隔。对于非空行,可以判断其是否属于已有的段落,如果是,则将该行添加到当前段落中;如果不是,则将之前的段落存储起来,开始一个新的段落,从而解析得到文档内容中的各段落。

列表用于表示一组项目或条目,Markdown中支持有序列表和无序列表。无序列表使用-、+或*来表示每个条目,有序列表使用数字加.来表示。对于以-、+、*或数字加.开头的行,判断其是否属于已有的列表,如果是,则将该行添加到当前列表中;如果不是,则将之前的列表存储起来,开始一个新的列表,从而解析得到文档内容中的列表。

引用用于引用其他人的话语或引用外部来源的内容,Markdown中使用>符号来表示引用内容。对于以>开头的行,判断其是否属于已有的引用块,如果是,则将该行添加到当前引用块中;如果不是,则将之前的引用块存储起来,开始一个新的引用块,从而解析得到文档内容中的引用块。

代码块用于展示程序代码或命令行输入,Markdown中可以使用三个反引号(```)来表示代码块,并可以指定代码块的语言类型。对于以三个反引号(```)开始和结束的行,可以判断其是否属于一个完整的代码块,如果是,则将该代码块存储起来;如果不是,则继续读取下一行以找到完整的代码块,从而解析得到文档内容中的代码块。

图片用于在文档中插入图片,Markdown中使用![图片描述](图片地址)的语法来表示图片。链接用于在文档中插入超链接,Markdown中使用[链接文本](链接地址)的语法来表示链接。对于以[和]包围的文本,可以判断其是否是链接或图片的语法,如果是,则提取出链接文本和链接地址或图片描述和图片地址,从而解析得到文档内容中的图片或链接。

表格是指用于展示数据和信息的二维表格,Markdown中使用|和-来定义表格的边界和列。对于包含|和-的行,可以判断是否属于一个完整的表格,如果是,则解析表格的边界和列,并将表格存储起来;如果不是,则继续读取下一行以找到完整的表格,从而解析得到文档内容中的表格。

通过将正文内容与各预设正文标记进行匹配,可以得到标题、段落、列表、引用块、代码块、图片、连接、表格等各文档元素,从而基于各文档元素,可以确定文档内容。例如,对于标题元素,可以提取标题的层级和文本内容;对于段落元素,可以提取段落的文本内容。可以理解的是,上述各个文档元素可以根据需要使用其中的部分或全部,正文内容中可以包括上述各个文档元素中的一种或多种,本发明实施例对此不作具体限定。

本发明实施例提供的方法,通过将正文内容与预设正文标记进行匹配,可以解析得到各个文档元素,从而可以准确地提取和处理文档内容的各个部分,以便于后续生成得到准确的目标文档。

基于上述任一实施例,步骤140具体包括:

基于所述文档属性,确定文档格式和文档样式;

基于所述文档格式和所述文档样式,对所述文档内容中的各文档元素进行排版,生成所述目标文档。

具体地,文档格式是指文档在存储和传输过程中所采用的特定的文件格式,例如,文档格式可以包括pdf、word等,如果文档格式为pdf,那么目标文档将是一个pdf文件;如果文档格式是word,那么目标文档将是一个word文档。每种文档格式都有其特定的文件扩展名和文件结构,文档格式定义了文档中的元素如何组织和呈现。文档样式是指文档中各个元素的视觉样式,例如标题的层级、列表的样式、字体、颜色、大小、边距、背景等。

基于文档属性,可以通过预设的规则和映射关系,确定文档格式和文档样式。例如,可以根据文档属性中的格式类型,来确定文档格式为pdf或word;可以根据文档属性中的页面样式,来确定字体、颜色、大小、页边距等。

在确定得到文档格式和文档样式后,可以基于文档格式和文档样式,对文档内容中的各个文档元素进行排版,例如,确定文本的字体、大小、颜色等,调整段落的间距、缩进等,安排标题的层次结构和样式,插入页眉页脚内容,调整图像的位置和大小等。此处,排版是指根据一定的规则和要求对文档内容进行布局、格式化和调整,以使其在视觉上更具吸引力和可读性。在排版过程中,可以对文档中的文字、标题、段落、图像等元素进行调整和安排,以达到更好的展示效果。

可以理解的是,如果文档格式是pdf,可以调用内置的pdf库或工具将文档内容转换为pdf格式,从而得到最终的目标文档;如果是word格式,可以调用内置的word处理库或工具将文档内容转换为word格式,从而得到最终的目标文档。

本发明实施例提供的方法,通过基于文档格式和文档样式对文档内容进行排版,可以使目标文档的结构更清晰、样式更统一、内容更易读,从而满足特定的需求。

基于上述任一实施例,步骤140之后,该方法还包括:

基于文档导出属性,对所述目标文档进行导出,所述文档导出属性基于预设导出属性和/或用户输入确定。

具体地,文档导出属性是指在将文档从一个文件格式导出到另一个文件格式时所设定的相关属性。它可以包括导出的文档命名规则、文档存储路径等。预设导出属性是指在导出程序中预先设定的一组默认导出属性,可以用于指导文档导出的相关设置;用户输入是指用户提供的自定义导出属性,可以根据用户的需求来设定导出参数,例如,可以是用户通过接口输入、表单输入、命令行参数等方式提供的导出属性信息。

基于预设导出属性和/或用户输入,可以确定文档导出属性,例如,可以通过提供设置界面或配置文件来实现。预设导出属性可以作为默认值,用户可以根据需要修改或覆盖这些属性,也可以从头开始自定义导出属性。

确定文档导出属性后,可以基于文档导出属性,使用相应的导出工具或库将目标文档导出。在导出过程中,根据设定的导出属性,程序将根据预设或用户输入的规则进行命名规则应用、存储路径设定等操作,最终将目标文档导出到指定存储路径。

本发明实施例提供的方法,可以根据预设导出属性和/或用户输入,灵活地设定导出参数,满足不同用户的需求。预设导出属性提供了默认设置,方便用户快速进行导出操作;而用户输入则允许用户根据具体要求进行自定义设置,增强了可定制性。通过设定文档导出属性,可以确保导出的目标文档符合用户的期望和需求。

基于上述任一实施例,图5是本发明提供的文档转换方法的流程示意图之二,如图5所示,该方法可以应用于文档转换系统,该系统可以包括文档读取模块、文档解析模块、属性设置模块以及文档导出模块。该方法包括:

S1,文档读取,文档读取模块通过接收Markdown文档的存储位置,可以获取到待转换文档,并以Java字符串格式逐行读取Markdown文档的内容,得到待解析文档内容,并将其作为文档解析模块的输入。

S2,文档解析,文档解析模块可以根据Markdown的语法规则,分别对文件头和正文内容进行解析,以得到文档属性和文档内容;其中,文档属性可以作为文档导出时的属性设置,并将其存储为文档属性对象,文档内容可以存储到文档数据对象,便于后续处理。

S3,属性设置,属性设置模块可以接收通过接口输入的文档属性设置,并对存储的文档属性对象进行更新,以实现文档样式的轻量化轻质,如设置页面格式、设置正文字体、设置水印等。此外,系统内置有导出文档的默认样式,在对Markdown文档进行转换导出时,用户也可以选择不自定义文档属性。

S4,文档导出,文档导出模块可以根据文档属性对象,组织文档数据对象中的各个元素,格式化文档内容,并将格式化后的文档导出为word文档。优选地,系统还可以提供接口,便于用户根据需要自定义导出文档的名称、输出生成日志等。

本发明实施例提供的方法,可以在Java开发环境下集成到开发程序中实现文档转换,减少软件切换,提升了开发效率。

基于上述任一实施例,图6是本发明提供的文档转换装置的结构示意图,如图6所示,该装置包括:

获取单元610,用于获取待转换文档,所述待转换文档为Markdown文档;

读取单元620,用于对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;

解析单元630,用于对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;

生成单元640,用于基于所述文档属性和所述文档内容,生成目标文档。

本发明实施例提供的装置,通过对Markdown文档进行逐行读取并转换为字符串,可以得到待解析文档内容,并将待解析文档内容拆分为文件头和正文内容,以便分别对其进行解析,得到文档属性和文档内容,由此可以基于文档属性和文档内容,生成得到目标文档,从而实现了将Markdown文档转换为目标文档,无需借助第三方文档转换工具,减少了软件切换,提升了开发效率,并且无需学习排版相关的命令,降低了学习成本,能够更方便地进行版本管理和轻量化操作。

基于上述任一实施例,解析单元630具体包括:

查找子单元,用于在所述待解析文档内容中查找预设文件头标记,所述预设文件头标记包括预设开始标记和预设结束标记;

确定子单元,用于在查找到所述预设文件头标记的情况下,将所述预设开始标记和所述预设结束标记之间的所述待解析文档内容作为所述文件头,并将所述预设结束标记之后的所述待解析文档内容作为所述正文内容;

文件头解析子单元,用于对所述文件头进行解析,得到所述文档属性;

正文内容解析子单元,用于对所述正文内容进行解析,得到所述文档内容。

基于上述任一实施例,解析单元630还包括内容属性确定子单元,内容属性确定子单元具体用于:

在未查找到所述预设文件头标记的情况下,将所述待解析文档内容作为所述正文内容,并对所述正文内容进行解析,得到所述文档内容;

获取所述预设文档属性,并将所述预设文档属性作为所述文档属性。

基于上述任一实施例,文件头解析子单元具体用于:

对所述文件头进行解析,得到初始文档属性;

接收文档属性设置操作;

响应于所述文档属性设置操作,对所述初始文档属性进行更新,得到所述文档属性。

基于上述任一实施例,正文内容解析子单元具体用于:

将所述正文内容与预设正文标记进行匹配,并基于匹配得到的所述正文内容,确定各文档元素;所述预设正文标记包括标题标记、段落标记、列表标记、引用标记、代码标记、图片或链接标记、表格标记中的至少一种;

基于所述各文档元素,确定所述文档内容。

基于上述任一实施例,生成单元640具体用于:

基于所述文档属性,确定文档格式和文档样式;

基于所述文档格式和所述文档样式,对所述文档内容中的各文档元素进行排版,生成所述目标文档。

基于上述任一实施例,该装置还包括导出单元,导出单元具体用于:

基于文档导出属性,对所述目标文档进行导出,所述文档导出属性基于预设导出属性和/或用户输入确定。

图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行文档转换方法,该方法包括:获取待转换文档,所述待转换文档为Markdown文档;对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;基于所述文档属性和所述文档内容,生成目标文档。

此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的文档转换方法,该方法包括:获取待转换文档,所述待转换文档为Markdown文档;对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;基于所述文档属性和所述文档内容,生成目标文档。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的文档转换方法,该方法包括:获取待转换文档,所述待转换文档为Markdown文档;对所述待转换文档的内容进行逐行读取并转换为字符串,得到待解析文档内容;对所述待解析文档内容进行解析,得到文档属性和文档内容,所述文档属性基于所述待解析文档内容的文件头、预设文档属性、用户输入中的至少一种确定,所述文档内容基于所述待解析文档内容的正文内容确定;基于所述文档属性和所述文档内容,生成目标文档。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 烹饪器具和制造用于烹饪器具的装饰片的方法
  • 一种用于电梯轿厢内部的装饰板及其制造方法
  • 一种发热内墙装饰板制造方法
  • 装饰片材的制造方法和装饰片材、以及装饰板的制造方法和装饰板
  • 装饰片材的制造方法和装饰片材、以及装饰板的制造方法和装饰板
技术分类

06120116516087