:: Corel-FORUM :: WWW.CORELCLUB.ORG :: http://corelforum.corelclub.org/ |
|
CONVERTIR TODO A CURVAS http://corelforum.corelclub.org/viewtopic.php?f=4&t=14489 |
Página 1 de 2 |
Autor: | Jesús Salazar [Lun, 15 Oct 2012, 20:48 ] |
Asunto: | CONVERTIR TODO A CURVAS |
No sé si exista alguna macro gratuita o comercial que convierta con un solo click el texto a curvas de todas las páginas de un documento Por si acaso, les dejo una subrutina para convertir todo a curvas en todas las páginas (incluyendo el texto dentro de PowerClips) Espero puedan revisarlo y reportar posibles bugs. El código es el siguiente: Sub CurvasToditito() 'CONVIERTE A CURVAS EL TEXTO DE TODO EL DOCUMENTO INCLUYENDO EL DE LOS POWERCLIPS (ATAJO Ctrl+Shift+Q) Dim n As Integer Dim m As Integer Dim s As Shape, s2 As Shape, sp As Shape Optimization = True ActiveDocument.BeginCommandGroup "Todo a Curvas" 'Obtiene el número de páginas del documento m = ActiveDocument.Pages.Count 'Aplica lo siguiente desde la página 1 hasta la última página For n = 1 To m ' Debido a que m es el número de páginas del documento, entonces también es el número de la última página ActiveDocument.Pages(n).Activate 'Activa la página n (en este caso la página 1) 'Desagrupa previamente todos los objetos ActiveDocument.SelectableShapes.All.UngroupAllEx 'Convierte a curvas todo el texto de cada página (excepto el de los PowerClips) For Each s In ActivePage.Shapes If s.Type = cdrTextShape Then s.ConvertToCurves End If Next s 'Y ahora convierte a curvas todo el texto de cada PowerClip Dim pwc As PowerClip For Each s2 In ActivePage.Shapes Set pwc = Nothing On Error Resume Next Set pwc = s2.PowerClip On Error GoTo 0 If Not pwc Is Nothing Then 'Desagrupa previamente todos los objetos pwc.Shapes.All.UngroupAllEx For Each sp In pwc.Shapes If sp.Type = cdrTextShape Then sp.ConvertToCurves Else sp.Separate ActiveDocument.SelectableShapes.All.UngroupAllEx ActiveDocument.SelectableShapes.All.ConvertToCurves End If Next sp End If Next s2 'Por último activa la siguiente página y repite el procedimiento hasta la última página Next n ActiveDocument.Pages(1).Activate ActiveDocument.EndCommandGroup Optimization = False 'Refresca la visualización ActiveDocument.Windows.Refresh 'ActiveDocument.Save Optimization = True ActiveDocument.BeginCommandGroup "Todo a Curvas PowerClips" 'Obtiene el número de páginas del documento m = ActiveDocument.Pages.Count 'Aplica lo siguiente desde la página 1 hasta la última página For n = 1 To m ' Debido a que m es el número de páginas del documento, entonces también es el número de la última página ActiveDocument.Pages(n).Activate 'Activa la página n (en este caso la página 1) 'Desagrupa previamente todos los objetos ActiveDocument.SelectableShapes.All.UngroupAllEx 'Convierte a curvas todo el texto de cada página (excepto el de los PowerClips) For Each s In ActivePage.Shapes If s.Type = cdrTextShape Then s.ConvertToCurves End If Next s 'Y ahora convierte a curvas todo el texto de cada PowerClip For Each s2 In ActivePage.Shapes Set pwc = Nothing On Error Resume Next Set pwc = s2.PowerClip On Error GoTo 0 If Not pwc Is Nothing Then 'Desagrupa previamente todos los objetos pwc.Shapes.All.UngroupAllEx For Each sp In pwc.Shapes If sp.Type = cdrTextShape Then sp.ConvertToCurves Else sp.Separate ActiveDocument.SelectableShapes.All.UngroupAllEx ActiveDocument.SelectableShapes.All.ConvertToCurves End If Next sp End If Next s2 'Por último activa la siguiente página y repite el procedimiento hasta la última página Next n ActiveDocument.Pages(1).Activate ActiveDocument.EndCommandGroup Optimization = False 'Refresca la visualización ActiveDocument.Windows.Refresh 'ActiveDocument.Save End Sub |
Autor: | Ariel Garaza Díaz [Lun, 15 Oct 2012, 22:06 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Excelente! yo conocia algunas como http://macromonster.com/index.php?mod=d ... products=1 y http://macromonster.com/index.php?mod=d ... products=1 pero son comerciales, y no siempre se puede gastar dinero en esas cosas. Muchas gracias por tu generosidad! |
Autor: | hoze [Mar, 16 Oct 2012, 16:32 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
mostro. que detalle... ahora solo falta que la sepa programar... |
Autor: | Ariel Garaza Díaz [Mar, 16 Oct 2012, 17:02 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
La pregunta que habria que hacerse es por qué alguien necesita convertir todo el texto a curvas. Si es para enviar un trabajo a imprimir, puede hacer un PDF y ya va con las fuentes incrustadas. Opcionalmente, las puede convertir a curvas, pero eso hace el archivo mas grande y pesado. Si se necesita enviar el archivo nativo (CDR) puedes usar la opcion de Archivo / compilar para salida, que te hace una copia del archivo y de las fuentes utilizadas. Tambien hay una macro gratuita que tiene la opcion de guardar los archivos CDR convertidos a curvas aunque lo hace en paginas separadas: http://macromonster.com/index.php?mod=descr&id_desc=23 Es decir, opciones hay muchas, y obviamente una macro como esta es algo muy util porque lo hace todo en una sola operacion. Pero la clave es para qué convertir a curvas todo el texto, ya que muchos tienen esa costumbre por simple precaucion, pero no siempre es necesario. Es mas, muchas veces resulta contraproducente al hacer el archivo mas grande y complejo |
Autor: | Jesús Salazar [Mar, 16 Oct 2012, 19:09 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Hola Señor Aguafiestas: Pienso que éste es el motivo por el que muchos usuarios sólo leen los mensajes y no aportan. Yo he aportado muy poco, lo reconozco, pero muchas veces no por desconocimiento, sino por temor a que usted Don Ariel siempre tiene qué decir la última palabra. Empiezo a creer que Nutabe tiene algo de razón. |
Autor: | Ariel Garaza Díaz [Mar, 16 Oct 2012, 19:19 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Perdone si mi mensaje fui inoportuno, y si te molestó te pido disculpas. Yo soy en le primero en agradecerte y felicitarte por tu labor y tu macros, solo es que me quedé pensando que es bueno aclarar que no siempre la "unica" solución es convertir a curvas, es bueno que la gente sepa que hay alternativas. por ejemplo, mucha gente convierte a curvas una revista de 48 paginas, una por una, antes publicar como PDF, porque no sabe que puede convertir a curvas al general el PDF e incluso que si hace un PDF no es necesario convertir a curvas. Por cierto, yo tambien he convertido muchas veces archivos a curvas, no vaya a pensar que no lo hago. Y si, lo admito, a veces soy pesado! jajaa pero lo hago sin malas intenciones saludos |
Autor: | Rafa [Mar, 16 Oct 2012, 19:31 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
¡Cómo están las chichis últimamente! La consulta ahora es al revés, hace unos días recibí yo un pdf de un cliente para bajar unos vegetales de un libro, y al importarlo a Corel x5 solicitaba 2 fuentes (una Helvetica Normal y una Bookman Old Syle con 3 números que no recuerdo ahora) y si lo abría directam como pdf no avisaba nada pero revisando en pantalla se producían alg cambios. A qué obedece? |
Autor: | Jesús Salazar [Mar, 16 Oct 2012, 19:36 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
OK No hay problema. En este foro no hay aportes acerca de las macros y por eso me nació el deseo de crear una con la ayuda de otros foros en inglés. Creo que sería grandioso empezar a compartir macros hechas por nosotros mismos, aunque sean sencillas y aparentemente no muy útiles. En la web existe información casi nula en español acerca del poder que tienen las macros de Corel y en inglés no abunda mucha. Un Saludo. |
Autor: | Ariel Garaza Díaz [Mar, 16 Oct 2012, 19:38 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Eso seria fantastico! ¿por que no lo agregas a la Wiki de CorelDRAW? |
Autor: | Rafa [Mar, 16 Oct 2012, 19:40 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Personalmente no tengo experiencia en el uso de Macros (aunque acá en este foro me han pasado un par para utilzarlas) y tampoco se crearlas. |
Autor: | Jesús Salazar [Mar, 16 Oct 2012, 20:01 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Puedes comenzar grabando una macro en Corel y al terminar de grabarla puedes inspeccionar su código oprimiendo Alt+F11 y así puedes ir familiarizándote con el código. Si lo deseas, entra a este hilo viewtopic.php?f=4&t=2973&hilit=programacion aquí tienes la Guía de Programación de Macros en español. |
Autor: | Rafa [Mar, 16 Oct 2012, 20:13 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Citar: Puedes comenzar grabando una macro en Corel y al terminar de grabarla puedes inspeccionar su código oprimiendo Alt+F11 y así puedes ir familiarizándote con el código.
Gracias Jesús. Ya hice la descarga. Intentaremos aprender.
Si lo deseas, entra a este hilo viewtopic.php?f=4&t=2973&hilit=programacion aquí tienes la Guía de Programación de Macros en español. |
Autor: | F J L C [Mié, 17 Oct 2012, 13:03 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Hola, la macro está genial, también me gusta hacerme macros para cosas así de sencillas y que son bastante útiles y también rebusco siempre entre las web's en ingles (sobre todo en la de Oberon), cuando no consigo hacer algo recurro a ellas y casi siempre encuentro el código que me falta. Ahora como a mi me gusta sacar siempre un poco de puntilla te diré que sólo falta que también lo haga en los símbolos. Seguramente modificando la subrutina que utilizas con los powerclips se pueda hacer. De nuevo felicitarte por la macro al igual que por la traducción del manual que me ha ayudado también bastante en el tema. Un saludo. |
Autor: | Jesús Salazar [Mié, 17 Oct 2012, 18:46 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Tienes razón: Me faltó incluir los símbolos. La corregiré y luego la subo. Gracias por la observación. |
Autor: | F J L C [Mié, 17 Oct 2012, 19:49 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Hola, si te das cuenta has repetido una parte de la macro. Al eliminarlo me ha quedado así: Sub Texto_Doc_Curvas() 'Convierte a curvas el texto de todo el documento, incluyendo los powerclips(Atajo: Ctrl+Alt+Q) On Error Resume Next Dim n As Integer, m As Integer Dim s As Shape, s2 As Shape, sp As Shape Optimization = True ActiveDocument.BeginCommandGroup "Todo a Curvas" m = ActiveDocument.Pages.Count 'Obtiene el número de páginas del documento 'Aplica lo siguiente desde la página 1 hasta la última página For n = 1 To m ' Debido a que m es el número de páginas del documento, entonces también es el número de la última página ActiveDocument.Pages(n).Activate 'Activa la página n (en este caso la página 1) ActiveDocument.SelectableShapes.All.UngroupAllEx 'Desagrupa previamente todos los objetos 'Convierte a curvas todo el texto de cada página (excepto el de los PowerClips) For Each s In ActivePage.Shapes If s.Type = cdrTextShape Then s.ConvertToCurves End If Next s 'Y ahora convierte a curvas todo el texto de cada PowerClip Dim pwc As PowerClip For Each s2 In ActivePage.Shapes Set pwc = Nothing Set pwc = s2.PowerClip On Error GoTo 0 If Not pwc Is Nothing Then pwc.Shapes.All.UngroupAllEx 'Desagrupa previamente todos los objetos For Each sp In pwc.Shapes If sp.Type = cdrTextShape Then sp.ConvertToCurves Else sp.Separate ActiveDocument.SelectableShapes.All.UngroupAllEx ActiveDocument.SelectableShapes.All.ConvertToCurves End If Next sp End If Next s2 'Por último activa la siguiente página y repite el procedimiento hasta la última página Next n ActiveDocument.Pages(1).Activate ActiveDocument.EndCommandGroup Optimization = False 'Refresca la visualización ActiveDocument.Windows.Refresh 'ActiveDocument.Save End Sub Lo he probado y sigue funcionando bien. |
Autor: | Jesús Salazar [Mié, 17 Oct 2012, 21:13 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Sí, ya lo había notado, pero por alguna razón que aún no he detectado, cuando el documento tiene más de una página con texto dentro de PowerClips, si no duplicas ese código y lo aplicas así, el comando "Deshacer" de Corel queda desactivado después de ejecutar la macro, por lo cual no puedes deshacer las acciones que se realizaron. Trataré de depurar el código en un tiempito que tenga. Gracias. |
Autor: | F J L C [Mié, 17 Oct 2012, 22:14 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Hola, pruebalo otra vez porque a mi me ha funcionado bien el deshacer. Lo que no he conseguido es lo del simbolo, a eso habra que dedicarle mas tiempo. Un saludo |
Autor: | Jesús Salazar [Jue, 18 Oct 2012, 10:35 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Aquí está la subrutina corregida, además ya convierte también los símbolos a curvas. Pruébenla y nos cuentan. Sub CurvasToditito() 'CONVIERTE A CURVAS EL TEXTO DE TODO EL DOCUMENTO INCLUYENDO SIMBOLOS Y POWERCLIPS (ATAJO Ctrl+Shift+Q) Dim n As Integer Dim m As Integer Dim z As Integer Dim s As Shape, s2 As Shape, sp As Shape Optimization = True ActiveDocument.BeginCommandGroup "Todo a Curvas" 'Obtiene el número de páginas del documento m = ActiveDocument.Pages.Count 'Aplica lo siguiente desde la página 1 hasta la última página For z = 1 To 2 For n = 1 To m ' Debido a que m es el número de páginas del documento, entonces también es el número de la última página ActiveDocument.Pages(n).Activate 'Activa la página n (en este caso la página 1) 'Desagrupa previamente todos los objetos ActiveDocument.SelectableShapes.All.UngroupAllEx 'Convierte a curvas todo el texto de cada página (excepto el de los PowerClips) For Each s In ActivePage.Shapes If s.Type = cdrTextShape Then s.ConvertToCurves ElseIf s.Type = cdrSymbolShape Then s.Symbol.RevertToShapes End If Next s 'Y ahora convierte a curvas todo el texto de cada PowerClip Dim pwc As PowerClip For Each s2 In ActivePage.Shapes Set pwc = Nothing On Error Resume Next Set pwc = s2.PowerClip On Error GoTo 0 If Not pwc Is Nothing Then 'Desagrupa previamente todos los objetos pwc.Shapes.All.UngroupAllEx For Each sp In pwc.Shapes If sp.Type = cdrTextShape Then sp.ConvertToCurves ElseIf sp.Type = cdrSymbolShape Then sp.Symbol.RevertToShapes Else sp.Separate ActiveDocument.SelectableShapes.All.UngroupAllEx ActiveDocument.SelectableShapes.All.ConvertToCurves End If Next sp End If Next s2 'Por último activa la siguiente página y repite el procedimiento hasta la última página Next n Next z ActiveDocument.EndCommandGroup ActiveDocument.Pages(1).Activate Optimization = False 'Refresca la visualización ActiveDocument.Windows.Refresh End Sub |
Autor: | F J L C [Sab, 20 Oct 2012, 17:07 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Hola, funciona perfectamente. Enhorabuena por el trabajo. |
Autor: | carlosjuan [Vie, 26 Oct 2012, 04:45 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Hola amigos, la verdad que me resulta muy intersante el macro, pero al parecer no me convierte las shapes a curvas, al menos no en la version corel x6.1, por favor, podrian decirme si lo han probado en 64 bits, o si realmente convierte todo a curvas , o solo los textos??? De atemano muchas gracias. |
Autor: | Jesús Salazar [Vie, 26 Oct 2012, 08:21 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
No amigo, las shapes no las convierte a curvas. Depuraré el código para que también las convierta y luego lo subo. Pero, ¿por qué quieres las shapes también en curvas? |
Autor: | corelclub.org [Vie, 26 Oct 2012, 12:05 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Estimado Jesús, Hace unos días le enviamos un e-mail haciendo una propuesta relacionada con su traducción de la Guía de Programación de Macros, ¿podría confirmarnos que recibió dicho e-mail? Si no lo recibió ¿puede enviarnos un e-mail a expertos@corelclub.org ? de modo que podamos reenviárselo. Muchas gracias, Corelclub.org |
Autor: | carlosjuan [Vie, 26 Oct 2012, 20:49 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Citar: No amigo, las shapes no las convierte a curvas.
Depuraré el código para que también las convierta y luego lo subo. Pero, ¿por qué quieres las shapes también en curvas? Muchas gracias Jesús, muy amable de tu parte...de verdad que los macros hacen el programa mucho mejor y más completo!! Saludos P.D: La idea es convertir todo a curvas, digo se podrá dejar las dos opciones, una tal como está y el otro código que convierta todo a curvas..... |
Autor: | Jesús Salazar [Jue, 01 Nov 2012, 09:04 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Citar: Estimado Jesús,
Muchas gracias por su interés. Les acabo de responder su e-mail. Disculpen la demora.
Hace unos días le enviamos un e-mail haciendo una propuesta relacionada con su traducción de la Guía de Programación de Macros, ¿podría confirmarnos que recibió dicho e-mail? Si no lo recibió ¿puede enviarnos un e-mail a expertos@corelclub.org ? de modo que podamos reenviárselo. Muchas gracias, Corelclub.org |
Autor: | Jesús Salazar [Jue, 01 Nov 2012, 09:08 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Citar: Citar: No amigo, las shapes no las convierte a curvas.
Depuraré el código para que también las convierta y luego lo subo. Pero, ¿por qué quieres las shapes también en curvas? Muchas gracias Jesús, muy amable de tu parte...de verdad que los macros hacen el programa mucho mejor y más completo!! Saludos P.D: La idea es convertir todo a curvas, digo se podrá dejar las dos opciones, una tal como está y el otro código que convierta todo a curvas..... Acabo de probar la macro y me acabo de dar cuenta que también las shapes las convierte a curvas. Pruébala y nos cuentas. Gracias. |
Autor: | carlosjuan [Vie, 02 Nov 2012, 07:06 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Citar: Citar: Citar: No amigo, las shapes no las convierte a curvas.
Depuraré el código para que también las convierta y luego lo subo. Pero, ¿por qué quieres las shapes también en curvas? Muchas gracias Jesús, muy amable de tu parte...de verdad que los macros hacen el programa mucho mejor y más completo!! Saludos P.D: La idea es convertir todo a curvas, digo se podrá dejar las dos opciones, una tal como está y el otro código que convierta todo a curvas..... Acabo de probar la macro y me acabo de dar cuenta que también las shapes las convierte a curvas. Pruébala y nos cuentas. Gracias. P.D: Si es posible, copianos el código actual corregido, debajo, muchas gracias!! saludos!! |
Autor: | Jesús Salazar [Vie, 02 Nov 2012, 09:21 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
He depurado el código y al parecer ya quedó bien. Es el siguiente: Sub CurvasTodititoOK() 'CONVIERTE A CURVAS TODO EL DOCUMENTO INCLUYENDO POWERCLIPS, SIMBOLOS Y SHAPES Dim n As Integer Dim m As Integer Dim z As Integer Dim s As Shape, s2 As Shape, sp As Shape Optimization = True ActiveDocument.BeginCommandGroup "Todo a Curvas" 'Obtiene el número de páginas del documento m = ActiveDocument.Pages.Count 'Aplica lo siguiente desde la página 1 hasta la última página For z = 1 To 2 For n = 1 To m ' Debido a que m es el número de páginas del documento, entonces también es el número de la última página ActiveDocument.Pages(n).Activate 'Activa la página n (en este caso la página 1) 'Desagrupa previamente todos los objetos ActiveDocument.SelectableShapes.All.UngroupAllEx 'Convierte a curvas todo el texto de cada página (excepto el de los PowerClips) For Each s In ActivePage.Shapes If s.Type <> cdrBitmapShape Then s.ConvertToCurves End If If s.Type = cdrSymbolShape Then s.Symbol.RevertToShapes End If Next s 'Y ahora convierte a curvas todo el texto de cada PowerClip Dim pwc As PowerClip For Each s2 In ActivePage.Shapes Set pwc = Nothing On Error Resume Next Set pwc = s2.PowerClip On Error GoTo 0 If Not pwc Is Nothing Then 'Desagrupa previamente todos los objetos pwc.Shapes.All.UngroupAllEx For Each sp In pwc.Shapes If sp.Type = cdrTextShape Then sp.ConvertToCurves ElseIf sp.Type = cdrSymbolShape Then sp.Symbol.RevertToShapes Else sp.Separate ActiveDocument.SelectableShapes.All.UngroupAllEx ActiveDocument.SelectableShapes.All.ConvertToCurves End If Next sp End If Next s2 'Por último activa la siguiente página y repite el procedimiento hasta la última página Next n Next z ActiveDocument.EndCommandGroup ActiveDocument.Pages(1).Activate Optimization = False 'Refresca la visualización ActiveDocument.Windows.Refresh End Sub Pruébalo y nos cuentas. |
Autor: | Ignacio Rodriguez Gonzalez [Vie, 02 Nov 2012, 10:57 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Muchas gracias Jesús por la macro, ¿convierte también a curvas los textos que están dentro de los Powerclip ? No tengo ni idea de como montar una macro, solo se "ejecutarlas" pero si ese código convierte absolutamente todo a curvas ya me las apañaré para aprender a montar la macro ;-) MIL GRACIAS Salu2 Nacho |
Autor: | Jesús Salazar [Vie, 02 Nov 2012, 18:43 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
Citar: Muchas gracias Jesús por la macro, ¿convierte también a curvas los textos que están dentro de los Powerclip ?
Para "montar" la macro sólo oprime Alt+F11 y entrarás en el editor de macros.No tengo ni idea de como montar una macro, solo se "ejecutarlas" pero si ese código convierte absolutamente todo a curvas ya me las apañaré para aprender a montar la macro ;-) MIL GRACIAS Salu2 Nacho Una vez dentro del editor copia el código y luego haz click en el icono de "Guardar" (arriba a la izquierda). Suerte. |
Autor: | carlosjuan [Vie, 02 Nov 2012, 18:58 ] |
Asunto: | Re: CONVERTIR TODO A CURVAS |
¡¡¡Excelente Jesús !!! Funciona genial, convierte todo a curvas, en todo el documento. ¡¡Muchísimas gracias!!! Saludos |
Página 1 de 2 | Todos los horarios son UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |