smi_to_2d is an command-line application - an extension of the original code in $DY_ROOT/contrib/src/c/depict/smi_to_2d.c
There is now an alignment option, for example:
smi_to_2d -a '$SMI<CC(=O)c1ccccc1>2D<-1.75,1.53,-1.25,2.40,-1.76,3.28,-0.24,2.41,0.24,1.53,1.25,1.53,1.76,2.40,1.26,3.28,0.26,3.28>|' CC(=O)c1ccccc1 CC(=O)c1ccc(F)cc1 CC(=O)c1ccc(cc1)C(O)C(CO)NC(=O)C(Cl)Cl CC(=O)c1ccc(cc1)S(=O)(=O)NC(=O)NC2CCCCC2 CC(NC(C)(C)C)C(=O)c1cccc(Cl)c1which will output 2D coords (2D TDT tag) for all input SMILES after SMARTS-matching the SMILES in the $SMI tag above and setting the coords of the matched atoms to the corresponding atoms in the 2D tag above.
$SMI<CC(=O)c1ccccc1>2D<-1.75,1.52,-1.25,2.40,-1.75,3.27,-0.23,2.41,0.25,3.27,1.25,3.27,1.75,2.40,1.25,1.52,0.23,1.52>MATCH<111111111>ALAB<.1,.1,.1,.1,.1,.1,.1,.1,.1>| $SMI<CC(=O)c1ccc(F)cc1>2D<-1.75,1.52,-1.25,2.40,-1.75,3.27,-0.23,2.41,0.25,3.27,1.25,3.27,1.75,2.40,2.26,3.28,1.25,1.52,0.23,1.52>MATCH<1111111011>ALAB<.1,.1,.1,.1,.1,.1,.1,.0,.1,.1>| $SMI<CC(=O)c1ccc(cc1)C(O)C(CO)NC(=O)C(Cl)Cl>2D<-1.75,1.52,-1.25,2.40,-1.75,3.27,-0.23,2.41,0.25,3.27,1.25,3.27,1.75,2.40,1.25,1.52,0.23,1.52,2.26,3.28,3.28,3.28,1.75,4.16,2.26,5.04,3.28,5.04,0.73,4.16,0.22,5.04,0.73,5.92,-0.79,5.04,-1.29,5.92,-1.30,4.15>MATCH<11111111100000000000>ALAB<.1,.1,.1,.1,.1,.1,.1,.1,.1,.0,.0,.0,.0,.0,.0,.0,.0,.0,.0,.0>| $SMI<CC(=O)c1ccc(cc1)S(=O)(=O)NC(=O)NC2CCCCC2>2D<-1.75,1.52,-1.25,2.40,-1.75,3.27,-0.23,2.41,0.25,3.27,1.25,3.27,1.75,2.40,1.25,1.52,0.23,1.52,2.77,2.40,2.76,1.38,2.77,3.41,3.65,2.90,4.53,2.38,5.04,3.26,5.03,1.49,6.05,1.49,6.02,0.47,6.90,-0.03,7.78,0.47,7.79,1.48,6.92,1.99>MATCH<1111111110000000000000>ALAB<.1,.1,.1,.1,.1,.1,.1,.1,.1,.0,.0,.0,.0,.0,.0,.0,.0,.0,.0,.0,.0,.0>| $SMI<CC(NC(C)(C)C)C(=O)c1cccc(Cl)c1>2D<-2.63,2.03,-1.75,1.52,-1.75,0.50,-2.63,0.00,-2.12,-0.88,-3.51,0.51,-3.14,-0.88,-1.25,2.40,-1.75,3.27,-0.23,2.41,0.25,3.27,1.25,3.27,1.75,2.40,1.25,1.52,1.75,0.63,0.23,1.52>MATCH<0100000111111101>ALAB<.0,.1,.0,.0,.0,.0,.0,.1,.1,.1,.1,.1,.1,.1,.0,.1>|Notes: