tres separar secciones programa para paginas online independientes hojas guardar documento dividir cortar correspondencia como archivos c# .net ms-word

c# - separar - Dividir documentos de Word en otros más pequeños



separar correspondencia en word (5)

¡Lo que quieres hacer no es trivial! He hecho mi parte justa de manipulación de documentos, eso dijo que si está trabajando con un DOCX en estos días no es tan malo debido a las bibliotecas de apoyo, consulte:

http://openxmldeveloper.org/

La versión anterior se vuelve más difícil, necesitarás buscar una biblioteca para eso, o como se sugiere usar macros.

¿El "programa" es un sitio web? Si es así, asegúrese de no utilizar interoperabilidad COM

Quiero que un usuario pueda cargar un documento de Word y mi programa luego analiza el documento en documentos de Word separados. El problema es que la división tendrá que ser manual ya que todos los documentos de Word no están formateados de la misma manera. Mi pensamiento inicial es que antes de que el usuario cargue, el usuario etiqueta las secciones con una etiqueta de inicio y final (de algún tipo, tal vez un comentario) para que mi programa pueda analizar y dividir el documento en documentos separados. (Esto también debe funcionar para .doc y .docx, por lo que es deseable una solución común)

Ex. Entrada:

Doc1

Capítulo 1

Bla, bla, bla

Capitulo 2

Blah blah

/ fin Doc1

Ex. Salida:

Doc1

Capítulo 1

Bla, bla, bla

/ fin Doc1

Doc 2

Capitulo 2

Blah blah

/ fin Doc2

¿Algunas ideas? He estado luchando con esto por un tiempo


Algo que puede ayudar es HTML Transit. Es un software increíblemente viejo e increíblemente caro, y desde una búsqueda inicial, puede que ya no sea compatible. Pero, sí tenía la capacidad de tomar un documento de Word y dividirlo en partes más pequeñas (por supuesto, también lo convirtió a HTML). Algo para mirar, tal vez. Google "HTML Transit" para más investigación y demostración gratuita.


He tenido un gran éxito con Aspose.Words para manipulación y generación de documentos.


Yo diría que su mejor apuesta es investigar las macros VSTO o VBA para lograr esto. Ambos le darán acceso completo al modelo de objetos en cualquier versión del documento.


VBA Macro para dividir archivos en documentos secundarios

Sub UpdateDocuments ()

Application.ScreenUpdating = False Dim strFolder As String, strFile As String, wdDoc As Document strFolder = GetFolder If strFolder = "" Then Exit Sub strFile = Dir(strFolder & "/*.doc", vbNormal) While strFile <> "" Set wdDoc = Documents.Open(FileName:=strFolder & "/" & strFile, AddToRecentFiles:=False, Visible:=False) With wdDoc ''Call your other macro or insert its code here ''BreakOnSection wdDoc.Activate ActiveDocument.ActiveWindow.View.Type = wdOutlineView Selection.WholeStory Selection.Copy ActiveDocument.Subdocuments.AddFromRange Range:=Selection.Range ActiveDocument.SaveAs "C:/Data/Split/" & ActiveDocument.Name ActiveDocument.Close SaveChanges:=True End With strFile = Dir() Wend Set wdDoc = Nothing Application.ScreenUpdating = True End Sub Function GetFolder() As String Dim oFolder As Object GetFolder = "" Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0) If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path Set oFolder = Nothing End Function